Fix Eval() and fix error management on disabled fast functions.
[INTERPRETER] * BUG: Fix Eval(). * BUG: Fix error management on disabled fast functions.
This commit is contained in:
parent
b24029f722
commit
3d41de69d4
2 changed files with 5 additions and 3 deletions
|
@ -994,7 +994,7 @@ void EXEC_function_loop()
|
|||
|
||||
ERROR_set_last(TRUE);
|
||||
|
||||
if (EXEC_debug && !FP->fast && !STACK_has_error_handler())
|
||||
if (EXEC_debug && !FP->fast_linked && !STACK_has_error_handler())
|
||||
{
|
||||
ERROR_hook();
|
||||
|
||||
|
@ -1018,11 +1018,11 @@ void EXEC_function_loop()
|
|||
|
||||
// We can only leave stack frames for non-JIT functions.
|
||||
ERROR_lock();
|
||||
while (PC != NULL && EC == NULL && !FP->fast)
|
||||
while (PC != NULL && EC == NULL && !FP->fast_linked)
|
||||
EXEC_leave_drop();
|
||||
ERROR_unlock();
|
||||
|
||||
if (FP && FP->fast)
|
||||
if (FP && FP->fast_linked)
|
||||
PROPAGATE();
|
||||
|
||||
// If we got the void stack frame, then we remove it and raise the error again
|
||||
|
|
|
@ -315,6 +315,8 @@ void SUBR_eval(ushort code)
|
|||
if (!EVAL.Run(eval, get_value))
|
||||
goto _ERROR;
|
||||
|
||||
*RP = TEMP;
|
||||
TEMP.type = T_VOID;
|
||||
goto _FREE;
|
||||
|
||||
_ERROR:
|
||||
|
|
Loading…
Reference in a new issue