Pārlūkot izejas kodu

Merge branch 'master' into v2.1

Mike Pall 4 gadi atpakaļ
vecāks
revīzija
e2b9797ba1
1 mainītis faili ar 5 papildinājumiem un 1 dzēšanām
  1. 5 1
      src/lj_trace.c

+ 5 - 1
src/lj_trace.c

@@ -512,7 +512,11 @@ static void trace_stop(jit_State *J)
     lj_assertJ(J->parent != 0 && J->cur.root != 0, "not a side trace");
     lj_asm_patchexit(J, traceref(J, J->parent), J->exitno, J->cur.mcode);
     /* Avoid compiling a side trace twice (stack resizing uses parent exit). */
-    traceref(J, J->parent)->snap[J->exitno].count = SNAPCOUNT_DONE;
+    {
+      SnapShot *snap = &traceref(J, J->parent)->snap[J->exitno];
+      snap->count = SNAPCOUNT_DONE;
+      if (J->cur.topslot > snap->topslot) snap->topslot = J->cur.topslot;
+    }
     /* Add to side trace chain in root trace. */
     {
       GCtrace *root = traceref(J, J->cur.root);