diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_trace.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c index b0ea8486..43b86e4f 100644 --- a/src/lj_trace.c +++ b/src/lj_trace.c | |||
@@ -512,7 +512,11 @@ static void trace_stop(jit_State *J) | |||
512 | lj_assertJ(J->parent != 0 && J->cur.root != 0, "not a side trace"); | 512 | lj_assertJ(J->parent != 0 && J->cur.root != 0, "not a side trace"); |
513 | lj_asm_patchexit(J, traceref(J, J->parent), J->exitno, J->cur.mcode); | 513 | lj_asm_patchexit(J, traceref(J, J->parent), J->exitno, J->cur.mcode); |
514 | /* Avoid compiling a side trace twice (stack resizing uses parent exit). */ | 514 | /* Avoid compiling a side trace twice (stack resizing uses parent exit). */ |
515 | traceref(J, J->parent)->snap[J->exitno].count = SNAPCOUNT_DONE; | 515 | { |
516 | SnapShot *snap = &traceref(J, J->parent)->snap[J->exitno]; | ||
517 | snap->count = SNAPCOUNT_DONE; | ||
518 | if (J->cur.topslot > snap->topslot) snap->topslot = J->cur.topslot; | ||
519 | } | ||
516 | /* Add to side trace chain in root trace. */ | 520 | /* Add to side trace chain in root trace. */ |
517 | { | 521 | { |
518 | GCtrace *root = traceref(J, J->cur.root); | 522 | GCtrace *root = traceref(J, J->cur.root); |