]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Prevent down-recursion for side traces.
authorMike Pall <mike>
Sun, 10 Mar 2024 16:23:21 +0000 (17:23 +0100)
committerMike Pall <mike>
Sun, 10 Mar 2024 16:23:21 +0000 (17:23 +0100)
Thanks to Sergey Kaplun. #1169

src/lj_record.c

index 35e6d6e16afc67559e789f8a1c1dad883310e401..f2a06f41cdf386ceeea8f44f3c474e3193063532 100644 (file)
@@ -728,7 +728,7 @@ void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults)
     if ((pt->flags & PROTO_NOJIT))
       lj_trace_err(J, LJ_TRERR_CJITOFF);
     if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) {
-      if (check_downrec_unroll(J, pt)) {
+      if (!J->cur.root && check_downrec_unroll(J, pt)) {
        J->maxslot = (BCReg)(rbase + gotresults);
        lj_snap_purge(J);
        rec_stop(J, LJ_TRLINK_DOWNREC, J->cur.traceno);  /* Down-recursion. */