diff src/vdb.c @ 3303:619edf713d55

[xemacs-hg @ 2006-03-26 14:05:29 by crestani] 2006-03-21 Marcus Crestani <crestani@xemacs.org> * mc-alloc.c (visit_all_used_page_headers): * mc-alloc.c (finalize_page_for_disksave): * mc-alloc.c (mc_finalize_for_disksave): * mc-alloc.c (sweep_page): * mc-alloc.c (mc_sweep): * mc-alloc.c (protect_heap_page): * mc-alloc.c (protect_heap_pages): * mc-alloc.c (unprotect_heap_page): * mc-alloc.c (unprotect_heap_pages): * mc-alloc.h: Return number of pages processed. * vdb.c (vdb_start_dirty_bits_recording): Adjust size of page_fault_table to its upper bound (= number of pages that contain BLACK objects) in advance, to avoid malloc in the signal handler.
author crestani
date Sun, 26 Mar 2006 14:05:30 +0000
parents 141c2920ea48
children 229bd619740a
line wrap: on
line diff
--- a/src/vdb.c	Sun Mar 26 13:05:17 2006 +0000
+++ b/src/vdb.c	Sun Mar 26 14:05:30 2006 +0000
@@ -38,8 +38,9 @@
 void
 vdb_start_dirty_bits_recording (void)
 {
+  Elemcount protected_pages = (Elemcount) protect_heap_pages ();
   page_fault_table = Dynarr_new2 (void_ptr_dynarr, void *);
-  protect_heap_pages ();
+  Dynarr_resize (page_fault_table, protected_pages);
 }
 
 /* Remove heap protection. */