From 195974ff5f428a9c549ffdb1594d0221ebc1255c Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 13 Dec 2011 19:36:05 -0800 Subject: [PATCH] vm: don't scribble memory handling leaf signals --- vm/cpu-x86.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/vm/cpu-x86.cpp b/vm/cpu-x86.cpp index bb52f406af..8db0ae5d4b 100644 --- a/vm/cpu-x86.cpp +++ b/vm/cpu-x86.cpp @@ -48,13 +48,10 @@ void factor_vm::dispatch_signal_handler(cell *sp, cell *pc, cell handler) else if (offset == 16 - sizeof(cell)) { // Make a fake frame for the leaf procedure - code_block *leaf_block = code->code_block_for_address(*pc); - FACTOR_ASSERT(leaf_block != NULL); + FACTOR_ASSERT(code->code_block_for_address(*pc) != NULL); cell newsp = *sp - LEAF_FRAME_SIZE; - *(cell*)(newsp + 3*sizeof(cell)) = 4*sizeof(cell); - *(cell*)(newsp + 2*sizeof(cell)) = (cell)leaf_block->entry_point(); - *(cell*) newsp = *pc; + *(cell*)newsp = *pc; *sp = newsp; handler_word = tagged(special_objects[LEAF_SIGNAL_HANDLER_WORD]); }