diff --git a/vm/callstack.cpp b/vm/callstack.cpp index 830ef6b35c..0c81aa408a 100755 --- a/vm/callstack.cpp +++ b/vm/callstack.cpp @@ -102,26 +102,12 @@ void factor_vm::primitive_callstack_to_array() } -void *factor_vm::innermost_stack_frame(void *bottom, void *top) -{ - /* if (top < bottom) - { - void *pred = frame_predecessor(top); - if (pred < bottom) - return pred; - else - return top; - } - else */ - return top; -} - /* Some primitives implementing a limited form of callstack mutation. Used by the single stepper. */ void factor_vm::primitive_innermost_stack_frame_executing() { callstack *stack = untag_check(ctx->pop()); - void *frame = innermost_stack_frame(stack->bottom(), stack->top()); + void *frame = stack->top(); void *addr = frame_return_address(frame); ctx->push(code->code_block_for_address((cell)addr)->owner_quot()); } @@ -129,7 +115,7 @@ void factor_vm::primitive_innermost_stack_frame_executing() void factor_vm::primitive_innermost_stack_frame_scan() { callstack *stack = untag_check(ctx->pop()); - void *frame = innermost_stack_frame(stack->bottom(), stack->top()); + void *frame = stack->top(); void *addr = frame_return_address(frame); ctx->push(code->code_block_for_address((cell)addr)->scan(this,addr)); } @@ -144,7 +130,7 @@ void factor_vm::primitive_set_innermost_stack_frame_quot() jit_compile_quot(quot.value(),true); - void *inner = innermost_stack_frame(stack->bottom(), stack->top()); + void *inner = stack->top(); void *addr = frame_return_address(inner); code_block *block = code->code_block_for_address((cell)addr); cell offset = block->offset(addr); diff --git a/vm/code_blocks.cpp b/vm/code_blocks.cpp index 0d17225128..17d9fe075a 100755 --- a/vm/code_blocks.cpp +++ b/vm/code_blocks.cpp @@ -508,7 +508,7 @@ struct find_symbol_at_address_visitor { image load. It finds the symbol and library, and throws an error. */ void factor_vm::undefined_symbol() { - void *frame = innermost_stack_frame(ctx->callstack_bottom, ctx->callstack_top); + void *frame = ctx->callstack_top; void *return_address = frame_return_address(frame); code_block *compiled = code->code_block_for_address((cell)return_address); find_symbol_at_address_visitor visitor(this, (cell)return_address); diff --git a/vm/vm.hpp b/vm/vm.hpp index bac366d2e8..70af2cc77b 100755 --- a/vm/vm.hpp +++ b/vm/vm.hpp @@ -634,7 +634,6 @@ struct factor_vm void primitive_callstack_for(); void *frame_predecessor(void *frame); void primitive_callstack_to_array(); - void *innermost_stack_frame(void *bottom, void *top); void primitive_innermost_stack_frame_executing(); void primitive_innermost_stack_frame_scan(); void primitive_set_innermost_stack_frame_quot();