comparison 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
comparison
equal deleted inserted replaced
3302:3d54e5f2dfb0 3303:619edf713d55
36 36
37 /* Init page fault table and protect heap. */ 37 /* Init page fault table and protect heap. */
38 void 38 void
39 vdb_start_dirty_bits_recording (void) 39 vdb_start_dirty_bits_recording (void)
40 { 40 {
41 Elemcount protected_pages = (Elemcount) protect_heap_pages ();
41 page_fault_table = Dynarr_new2 (void_ptr_dynarr, void *); 42 page_fault_table = Dynarr_new2 (void_ptr_dynarr, void *);
42 protect_heap_pages (); 43 Dynarr_resize (page_fault_table, protected_pages);
43 } 44 }
44 45
45 /* Remove heap protection. */ 46 /* Remove heap protection. */
46 void 47 void
47 vdb_stop_dirty_bits_recording (void) 48 vdb_stop_dirty_bits_recording (void)