From 6ed43229b4f87724ade863292d1f26b9e90fdeca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Tue, 5 Feb 2013 16:48:44 +0100 Subject: [PATCH] Interpreter: Fixed some opcodes when executing in a destructed object. Fixed opcodes are: F_MARK_AND_EXTERNAL, F_EXTERNAL_LVALUE, F_EXTERNAL and F_THIS. --- src/interpret_functions.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/interpret_functions.h b/src/interpret_functions.h index 62d9753c1a..2d63e1537b 100644 --- a/src/interpret_functions.h +++ b/src/interpret_functions.h @@ -371,8 +371,7 @@ OPCODE2_TAIL(F_MARK_AND_EXTERNAL, "mark & external", I_UPDATE_SP|I_UPDATE_M_SP, loc.o=Pike_fp->current_object; loc.parent_identifier=Pike_fp->fun; - if (loc.o->prog) - loc.inherit=INHERIT_FROM_INT(loc.o->prog, loc.parent_identifier); + loc.inherit=Pike_fp->context; find_external_context(&loc, arg2); DO_IF_DEBUG({ @@ -400,8 +399,7 @@ OPCODE2(F_EXTERNAL_LVALUE, "& external", I_UPDATE_SP, { loc.o=Pike_fp->current_object; loc.parent_identifier=Pike_fp->fun; - if (loc.o->prog) - loc.inherit=INHERIT_FROM_INT(loc.o->prog, loc.parent_identifier); + loc.inherit=Pike_fp->context; find_external_context(&loc, arg2); if (!loc.o->prog) @@ -2757,8 +2755,7 @@ OPCODE2(F_THIS, "this", I_UPDATE_SP, { loc.o = Pike_fp->current_object; loc.parent_identifier = Pike_fp->fun; - if (loc.o->prog) - loc.inherit = INHERIT_FROM_INT(loc.o->prog, loc.parent_identifier); + loc.inherit = Pike_fp->context; find_external_context(&loc, arg1); DO_IF_DEBUG({ -- GitLab