diff --git a/vm/callstack.hpp b/vm/callstack.hpp index ea62f6da4b..7e7e5cc20b 100755 --- a/vm/callstack.hpp +++ b/vm/callstack.hpp @@ -35,7 +35,7 @@ template void iterate_callstack(cell top, cell bottom, T &iterator) /* This is a little tricky. The iterator may allocate memory, so we keep the callstack in a GC root and use relative offsets */ -template void iterate_callstack_object(callstack *stack_, T &iterator) +template void factorvm::iterate_callstack_object(callstack *stack_, T &iterator) { gc_root stack(stack_,vm); fixnum frame_offset = untag_fixnum(stack->length) - sizeof(stack_frame); @@ -48,4 +48,9 @@ template void iterate_callstack_object(callstack *stack_, T &iterato } } +template void iterate_callstack_object(callstack *stack_, T &iterator) +{ + return vm->iterate_callstack_object(stack_,iterator); +} + } diff --git a/vm/code_heap.hpp b/vm/code_heap.hpp index a77a89b827..20d2b974d3 100755 --- a/vm/code_heap.hpp +++ b/vm/code_heap.hpp @@ -10,8 +10,6 @@ bool in_code_heap_p(cell ptr); void jit_compile_word(cell word, cell def, bool relocate); -//typedef void (*code_heap_iterator)(code_block *compiled); - void iterate_code_heap(code_heap_iterator iter); void copy_code_heap_roots(); diff --git a/vm/vm.hpp b/vm/vm.hpp index 5db239626d..2c52ffcf5d 100644 --- a/vm/vm.hpp +++ b/vm/vm.hpp @@ -466,6 +466,7 @@ struct factorvm { void load_image(vm_parameters *p); //callstack + template void iterate_callstack_object(callstack *stack_, T &iterator); void check_frame(stack_frame *frame); callstack *allot_callstack(cell size); stack_frame *fix_callstack_top(stack_frame *top, stack_frame *bottom);