From: Mike Pall Date: Wed, 14 Aug 2024 22:19:35 +0000 (+0200) Subject: Merge branch 'master' into v2.1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=833600390cb34d2e1d3f05b8eae8bebf9fd7a873;p=thirdparty%2FLuaJIT.git Merge branch 'master' into v2.1 --- 833600390cb34d2e1d3f05b8eae8bebf9fd7a873 diff --cc src/lj_trace.c index f384cbdb,d015f2ab..a5e316e1 --- a/src/lj_trace.c +++ b/src/lj_trace.c @@@ -905,20 -788,15 +905,18 @@@ int LJ_FASTCALL lj_trace_exit(jit_Stat exd.J = J; exd.exptr = exptr; errcode = lj_vm_cpcall(L, NULL, &exd, trace_exit_cp); - if (errcode) { - setcframe_pc(cframe_raw(L->cframe), L); /* Point to any valid memory. */ + if (errcode) return -errcode; /* Return negated error code. */ - } - lj_vmevent_send(L, TEXIT, - lj_state_checkstack(L, 4+RID_NUM_GPR+RID_NUM_FPR+LUA_MINSTACK); - setintV(L->top++, J->parent); - setintV(L->top++, J->exitno); - trace_exit_regs(L, ex); - ); + if (exitcode) copyTV(L, L->top++, &exiterr); /* Anchor the error object. */ + + if (!(LJ_HASPROFILE && (G(L)->hookmask & HOOK_PROFILE))) + lj_vmevent_send(L, TEXIT, + lj_state_checkstack(L, 4+RID_NUM_GPR+RID_NUM_FPR+LUA_MINSTACK); + setintV(L->top++, J->parent); + setintV(L->top++, J->exitno); + trace_exit_regs(L, ex); + ); pc = exd.pc; cf = cframe_raw(L->cframe);