1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
2011-10-21 Basile Starynkevitch <basile@starynkevitch.net>
* 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 <basile@starynkevitch.net>
* 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 <basile@starynkevitch.net>
* 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 <basile@starynkevitch.net>
* ggc-zone.c (sweep_pages): Call the finalizer on the page data of
large objects.
2011-10-21 Basile Starynkevitch <basile@starynkevitch.net>
* 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 <basile@starynkevitch.net>
* 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 <basile@starynkevitch.net>
* 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 ==========
|