From c3adfc065ea925fc6f7e0dccd8352f3d2c64e98a Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Fri, 14 Oct 2016 13:20:04 -0500 Subject: SCI: Ensure export breakpoints always trigger on export calls Previously, export calls to non-existing functions would act like there was never an export call, and the breakpoint would never be triggered. --- engines/sci/engine/vm.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'engines') diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index 82de957387..700b7d2a21 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -235,13 +235,13 @@ ExecStack *execute_method(EngineState *s, uint16 script, uint16 pubfunct, StackP scr = s->_segMan->getScript(seg); } + // Check if a breakpoint is set on this method + g_sci->checkExportBreakpoint(script, pubfunct); + uint32 exportAddr = scr->validateExportFunc(pubfunct, false); if (!exportAddr) return NULL; - // Check if a breakpoint is set on this method - g_sci->checkExportBreakpoint(script, pubfunct); - assert(argp[0].toUint16() == argc); // The first argument is argc ExecStack xstack(calling_obj, calling_obj, sp, argc, argp, seg, make_reg32(seg, exportAddr), -1, -1, -1, pubfunct, -1, -- cgit v1.2.3