]> gitweb.factorcode.org Git - factor.git/commitdiff
VM: removing the 1-arg overload of iterate() (better to be explicit about the fixup)
authorBjörn Lindqvist <bjourne@gmail.com>
Thu, 22 Sep 2016 15:03:38 +0000 (17:03 +0200)
committerBjörn Lindqvist <bjourne@gmail.com>
Thu, 22 Sep 2016 15:03:38 +0000 (17:03 +0200)
vm/code_heap.cpp
vm/compaction.cpp
vm/debug.cpp
vm/free_list.hpp
vm/slot_visitor.hpp
vm/vm.hpp

index bd97d64274998cc0f014ed3c80745f4e9b49626e..80d550b2f94f1aade7f8ec60676a548a13ef8629 100644 (file)
@@ -73,7 +73,7 @@ void code_heap::verify_all_blocks_set() {
   auto all_blocks_set_verifier = [&](code_block* block, cell size) {
     FACTOR_ASSERT(all_blocks.find((cell)block) != all_blocks.end());
   };
-  allocator->iterate(all_blocks_set_verifier);
+  allocator->iterate(all_blocks_set_verifier, no_fixup());
 }
 
 code_block* code_heap::code_block_for_address(cell address) {
@@ -104,7 +104,7 @@ void code_heap::initialize_all_blocks_set() {
   auto all_blocks_set_inserter = [&](code_block* block, cell size) {
     all_blocks.insert((cell)block);
   };
-  allocator->iterate(all_blocks_set_inserter);
+  allocator->iterate(all_blocks_set_inserter, no_fixup());
 #ifdef FACTOR_DEBUG
   verify_all_blocks_set();
 #endif
index c2e526b065ddf6c9f71bdce59ed4c77d9d4a05de..f1dc8b937a1f13f6f13ee36c85715889735f6b8a 100644 (file)
@@ -138,7 +138,7 @@ void factor_vm::collect_compact_impl() {
   auto callback_updater = [&](code_block* stub, cell size) {
     callbacks->update(stub);
   };
-  callbacks->allocator->iterate(callback_updater);
+  callbacks->allocator->iterate(callback_updater, no_fixup());
 
   code->initialize_all_blocks_set();
 
index fc5f7e50ebe565a64443f96d15cb85cded7a26b4..7552fd4e79027df2414cfc29af826e46f74bfce1 100644 (file)
@@ -368,7 +368,7 @@ struct code_block_printer {
 // Dump all code blocks for debugging
 void factor_vm::dump_code_heap(ostream& out) {
   code_block_printer printer(this, out);
-  code->allocator->iterate(printer);
+  code->allocator->iterate(printer, no_fixup());
   out << printer.reloc_size << " bytes used by relocation tables" << endl;
   out << printer.parameter_size << " bytes used by parameter tables" << endl;
 }
index 150a1b50656ce974e94f4689c323db94d73f31de..4fdf4491471c829d2e8cae13518f3c7d4beffc91 100644 (file)
@@ -206,12 +206,6 @@ void free_list_allocator<Block>::iterate(Iterator& iter, Fixup fixup) {
   }
 }
 
-template <typename Block>
-template <typename Iterator>
-void free_list_allocator<Block>::iterate(Iterator& iter) {
-  iterate(iter, no_fixup());
-}
-
 template <typename Block>
 allocator_room free_list_allocator<Block>::as_allocator_room() {
   allocator_room room;
index 6d08b9b7a2af16beb79fb4faf455cfdea1cad08f..0027d4264b90e34ddf15480f5b20a6f48bf835e9 100644 (file)
@@ -200,7 +200,7 @@ template <typename Fixup> void slot_visitor<Fixup>::visit_all_roots() {
   auto callback_slot_visitor = [&](code_block* stub, cell size) {
     visit_handle(&stub->owner);
   };
-  parent->callbacks->allocator->iterate(callback_slot_visitor);
+  parent->callbacks->allocator->iterate(callback_slot_visitor, no_fixup());
 
   FACTOR_FOR_EACH(parent->code->uninitialized_blocks) {
     iter->second = visit_pointer(iter->second);
index eaafbd9bf24e50204da6b97153e07d4dc8cfc816..10de7ee2d6cb964a57b1c1cb26e3351014a11a66 100644 (file)
--- a/vm/vm.hpp
+++ b/vm/vm.hpp
@@ -571,7 +571,7 @@ struct factor_vm {
 
   //code heap
   template <typename Iterator> void each_code_block(Iterator& iter) {
-    code->allocator->iterate(iter);
+    code->allocator->iterate(iter, no_fixup());
   }
 
   void update_code_heap_words(bool reset_inline_caches);