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.
This commit is contained in:
Colin Snover 2016-10-14 13:20:04 -05:00
parent a05ae2e24a
commit c3adfc065e

View File

@ -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,