]> gitweb.factorcode.org Git - factor.git/commitdiff
Dev checkpoint
authorPhil Dawes <phil@phildawes.net>
Mon, 17 Aug 2009 20:37:14 +0000 (21:37 +0100)
committerPhil Dawes <phil@phildawes.net>
Wed, 16 Sep 2009 07:16:25 +0000 (08:16 +0100)
vm/code_block.cpp
vm/code_block.hpp
vm/code_gc.cpp
vm/code_gc.hpp

index 1beeddd69e7e16d669713fbe98d8e13ed58abf5b..9486d7f3b3dcadd2ade7d88ee13f1d3d215b876c 100755 (executable)
@@ -467,9 +467,9 @@ void factorvm::update_literal_and_word_references(code_block *compiled)
        update_word_references(compiled);
 }
 
-void update_literal_and_word_references(code_block *compiled)
+void update_literal_and_word_references(code_block *compiled, factorvm *myvm)
 {
-       return vm->update_literal_and_word_references(compiled);
+       return myvm->update_literal_and_word_references(compiled);
 }
 
 void factorvm::check_code_address(cell address)
index e29d161339fdef047f580e76577832124d29dc62..0addaeb8542dee81b3ecc63225e039df5661eca8 100644 (file)
@@ -78,7 +78,7 @@ void copy_literal_references(code_block *compiled, factorvm *myvm);
 
 void update_word_references(code_block *compiled, factorvm *myvm);
 
-void update_literal_and_word_references(code_block *compiled);
+void update_literal_and_word_references(code_block *compiled, factorvm *myvm);
 
 void mark_code_block(code_block *compiled);
 
index d229fcd3bf57fd4c2be61419c24a4deaabe05422..9ccc83aa0fe91b497e2f8accde329842caf4376b 100755 (executable)
@@ -299,7 +299,7 @@ void factorvm::free_unmarked(heap *heap, heap_iterator iter)
                                add_to_free_list(heap,(free_heap_block *)prev);
                        scan->status = B_ALLOCATED;
                        prev = scan;
-                       iter(scan);
+                       iter(scan,this);
                        break;
                default:
                        critical_error("Invalid scan->status",(cell)scan);
index 1cfafb69c23f93b7383b9490cf915ff4d52fcc17..08bdd327c792a77acaf4db8aecca6138a578ccc7 100755 (executable)
@@ -14,7 +14,7 @@ struct heap {
        heap_free_list free;
 };
 
-typedef void (*heap_iterator)(heap_block *compiled);
+typedef void (*heap_iterator)(heap_block *compiled,factorvm *vm);
 
 void new_heap(heap *h, cell size);
 void build_free_list(heap *h, cell size);