2011-10-21 Basile Starynkevitch * ggc-zone.c (ggczon_finalized_sizetab): New constant array. (GGCZON_NUMBER_FINALIZED_SIZES): New macro. (enum ggczon_chunkstate_en): New. (union ggczon_final_prefix_un): New. (GGCZON_FINALIZED_PREFIX,GGCZON_FINALIZED_OBJECT): New macros. (GGCZON_FINALIZING_PAGE): New enum value. (struct page_entry): Move next field here. (struct small_page_entry) (struct finalizing_page_entry, struct large_page_entry): Remove next field. (struct alloc_zone): Added some fields. (zone_allocate_marks, alloc_small_page, alloc_large_page) (release_pages, ggc_internal_alloc_zone_stat, ggc_free, init_ggc) (sweep_pages, ggc_print_statistics): Update for next field. (alloc_finalizing_page): New function. 2011-10-21 Basile Starynkevitch * ggc-zone.c (ggc_free, gt_ggc_m_S, ggc_set_mark, ggc_marked_p) (ggc_get_size): Use switch on page_kind. (sweep_pages): Better assertion on small pages. 2011-10-21 Basile Starynkevitch * ggc-zone.c (struct alloc_zone): Rename pages field as small_pages. (zone_allocate_marks, ggc_internal_alloc_zone_stat, sweep_pages) (calculate_average_page_survival, ggc_pch_read): Likewise. 2011-10-21 Basile Starynkevitch * ggc-zone.c (sweep_pages): Call the finalizer on the page data of large objects. 2011-10-21 Basile Starynkevitch * ggc-zone.c (max_finalized_alignment): New struct. (MAX_FINALIZED_ALIGNMENT): New macro. (alloc_small_page): Fill appropriately the page_kind. (ggc_finalized_alloc_stat): Deal with null finalizer. 2011-10-20 Basile Starynkevitch * ggc.h (ggc_destructor_t): Rename as ... (ggc_finalizer_t): New type for signature of finalizers. (ggc_finalized_alloc_stat): Update accordingly. * ggc-zone.c (enum page_kind_en): New. (page_entry): Remove large_p & pch_p. Add page_kind field. (alloc_large_page, free_small_page, free_large_page, ggc_free) (ggc_set_mark, ggc_get_size, sweep_pages, ggc_pch_read): Use it. (ggc_finalized_alloc_stat): Update signature. 2011-10-19 Basile Starynkevitch * ggc.h (ggc_destructor_t): New type, signature of destructor routines. (ggc_finalized_alloc_stat): New declaration. (ggc_finalized_alloc): New macro. * ggc-zone.c (ggc_finalized_alloc_stat): Adding new function. ========= changelog for adding finalization to Ggc ==========