]> gitweb.factorcode.org Git - factor.git/commitdiff
VM: replaced the reset_generation() generic method with one method for each generation
authorBjörn Lindqvist <bjourne@gmail.com>
Sat, 10 Jan 2015 15:14:54 +0000 (15:14 +0000)
committerBjörn Lindqvist <bjourne@gmail.com>
Thu, 15 Jan 2015 09:29:14 +0000 (09:29 +0000)
vm/aging_collector.cpp
vm/data_heap.cpp
vm/data_heap.hpp
vm/full_collector.cpp
vm/nursery_collector.cpp
vm/to_tenured_collector.cpp

index dfd9b6c31ce8ca024037b2a2a123d4dfc71c81f1..2fec6a40362685be3bdacfa814602a8d9715b0cc 100644 (file)
@@ -33,7 +33,7 @@ void factor_vm::collect_aging() {
     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,
@@ -43,7 +43,7 @@ void factor_vm::collect_aging() {
 
     collector.cheneys_algorithm();
 
-    data->reset_generation(&nursery);
+    data->reset_nursery();
     code->clear_remembered_set();
   }
 }
index 79df16094c6a512cd1899e6dcb448807a9493724..e483bb8938700cb137ef08252db166bf71a5a013 100644 (file)
@@ -77,20 +77,20 @@ template <typename Generation> void data_heap::clear_decks(Generation* gen) {
   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() {
index 3cd7781fc06915b1fc6b12c6c0f15c0927fcdcdf..45400a3b0516db1f7ef9b1c792789fa9618b6b8c 100644 (file)
@@ -29,9 +29,9 @@ struct data_heap {
   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();
index 4a15a6faaa96d790470c755cba8fd5e2b811c9f2..736974b67e31d672c48b748a9bd5a81acf29a035 100644 (file)
@@ -59,10 +59,9 @@ void factor_vm::collect_mark_impl(bool trace_contexts_p) {
       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();
 }
 
index c8a18581e075253161d1802c496b4bc277325d36..de949b66bcb4d49e585954379065c6e0f9a54ed0 100644 (file)
@@ -31,7 +31,7 @@ void factor_vm::collect_nursery() {
 
   collector.cheneys_algorithm();
 
-  data->reset_generation(&nursery);
+  data->reset_nursery();
   code->points_to_nursery.clear();
 }
 
index c3845c50a05098f3ffdd5f1161dca3d705649e1a..360d52d5aff58a2088d1c8bd30f0a50c48917137 100644 (file)
@@ -41,8 +41,8 @@ void factor_vm::collect_to_tenured() {
 
   collector.tenure_reachable_objects();
 
-  data->reset_generation(&nursery);
-  data->reset_generation(data->aging);
+  data->reset_nursery();
+  data->reset_aging();
   code->clear_remembered_set();
 }