current_gc->op = collect_aging_op;
std::swap(data->aging, data->aging_semispace);
- data->reset_generation(data->aging);
+ data->reset_aging();
copying_collector<aging_space, aging_policy> collector(this,
this->data->aging,
collector.cheneys_algorithm();
- data->reset_generation(&nursery);
+ data->reset_nursery();
code->clear_remembered_set();
}
}
memset(&decks[first_deck], 0, last_deck - first_deck);
}
-void data_heap::reset_generation(bump_allocator* gen) {
- gen->flush();
+void data_heap::reset_nursery() {
+ nursery->flush();
}
-void data_heap::reset_generation(aging_space* gen) {
- gen->flush();
- clear_cards(gen);
- clear_decks(gen);
- gen->starts.clear_object_start_offsets();
+void data_heap::reset_aging() {
+ aging->flush();
+ clear_cards(aging);
+ clear_decks(aging);
+ aging->starts.clear_object_start_offsets();
}
-void data_heap::reset_generation(tenured_space* gen) {
- clear_cards(gen);
- clear_decks(gen);
+void data_heap::reset_tenured() {
+ clear_cards(tenured);
+ clear_decks(tenured);
}
bool data_heap::high_fragmentation_p() {
data_heap* grow(bump_allocator* vm_nursery, cell requested_size);
template <typename Generation> void clear_cards(Generation* gen);
template <typename Generation> void clear_decks(Generation* gen);
- void reset_generation(bump_allocator* gen);
- void reset_generation(aging_space* gen);
- void reset_generation(tenured_space* gen);
+ void reset_nursery();
+ void reset_aging();
+ void reset_tenured();
bool high_fragmentation_p();
bool low_memory_p();
void mark_all_cards();
code_visitor.visit_object_code_block(obj);
}
}
-
- data->reset_generation(data->tenured);
- data->reset_generation(data->aging);
- data->reset_generation(&nursery);
+ data->reset_tenured();
+ data->reset_aging();
+ data->reset_nursery();
code->clear_remembered_set();
}
collector.cheneys_algorithm();
- data->reset_generation(&nursery);
+ data->reset_nursery();
code->points_to_nursery.clear();
}
collector.tenure_reachable_objects();
- data->reset_generation(&nursery);
- data->reset_generation(data->aging);
+ data->reset_nursery();
+ data->reset_aging();
code->clear_remembered_set();
}