15 aging_space *aging_semispace;
16 tenured_space *tenured;
17 tenured_space *tenured_semispace;
25 explicit data_heap(cell young_size, cell aging_size, cell tenured_size);
27 data_heap *grow(cell requested_size);
28 template<typename Generation> void clear_cards(Generation *gen);
29 template<typename Generation> void clear_decks(Generation *gen);
30 template<typename Generation> void reset_generation(Generation *gen);
33 template<typename Generation> void data_heap::clear_cards(Generation *gen)
35 cell first_card = addr_to_card(gen->start - start);
36 cell last_card = addr_to_card(gen->end - start);
37 memset(&cards[first_card],0,last_card - first_card);
40 template<typename Generation> void data_heap::clear_decks(Generation *gen)
42 cell first_deck = addr_to_deck(gen->start - start);
43 cell last_deck = addr_to_deck(gen->end - start);
44 memset(&decks[first_deck],0,last_deck - first_deck);
47 /* After garbage collection, any generations which are now empty need to have
48 their allocation pointers and cards reset. */
49 template<typename Generation> void data_heap::reset_generation(Generation *gen)
51 gen->here = gen->start;
55 gen->starts.clear_object_start_offsets();