]> gitweb.factorcode.org Git - factor.git/blob - vm/to_tenured_collector.cpp
Merge branch 'master' of git://factorcode.org/git/factor
[factor.git] / vm / to_tenured_collector.cpp
1 #include "master.hpp"
2
3 namespace factor
4 {
5
6 to_tenured_collector::to_tenured_collector(factor_vm *myvm_) :
7         copying_collector<tenured_space,to_tenured_policy>(
8                 myvm_,
9                 &myvm_->gc_stats.aging_stats,
10                 myvm_->data->tenured,
11                 to_tenured_policy(myvm_)) {}
12
13 void factor_vm::collect_to_tenured()
14 {
15         to_tenured_collector collector(this);
16
17         collector.trace_roots();
18         collector.trace_contexts();
19         collector.trace_cards(data->tenured,
20                 card_points_to_aging,
21                 dummy_unmarker());
22         collector.trace_code_heap_roots(&code->points_to_aging);
23         collector.cheneys_algorithm();
24         update_dirty_code_blocks(&code->points_to_aging);
25
26         nursery.here = nursery.start;
27         reset_generation(data->aging);
28         code->points_to_nursery.clear();
29         code->points_to_aging.clear();
30 }
31
32 }