From aa5b80b2fbd3d0a1d5113c89505cd2eb38f50e13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Thu, 18 Jun 1998 16:18:44 -0700 Subject: [PATCH] bugfix Rev: src/interpret.c:1.88 --- src/interpret.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/interpret.c b/src/interpret.c index 5d2ced3128..7e3477ea5d 100644 --- a/src/interpret.c +++ b/src/interpret.c @@ -4,7 +4,7 @@ ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h" -RCSID("$Id: interpret.c,v 1.87 1998/06/06 03:25:36 hubbe Exp $"); +RCSID("$Id: interpret.c,v 1.88 1998/06/18 23:18:44 hubbe Exp $"); #include "interpret.h" #include "object.h" #include "program.h" @@ -2026,7 +2026,15 @@ void mega_apply(enum apply_type type, INT32 args, void *arg1, void *arg2) #endif new_frame.num_locals=num_locals; new_frame.num_args=num_args; - tailrecurse=eval_instruction(pc); + { + struct svalue **save_mark_sp=mark_sp; + tailrecurse=eval_instruction(pc); +#ifdef DEBUG + if(mark_sp < save_mark_sp) + fatal("Popped below save_mark_sp!\n"); +#endif + mark_sp=save_mark_sp; + } #ifdef DEBUG if(sp<evaluator_stack) fatal("Stack error (also simple).\n"); @@ -2158,7 +2166,7 @@ int apply_low_safe_and_stupid(struct object *o, INT32 offset) free_object(new_frame.current_object); free_program(new_frame.context.prog); - fp = new_frame.parent_frame; + mark_sp=save_mark_sp; return ret; } -- GitLab