diff options
Diffstat (limited to 'src/lj_trace.c')
-rw-r--r-- | src/lj_trace.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c index c508c02a..421278e1 100644 --- a/src/lj_trace.c +++ b/src/lj_trace.c | |||
@@ -388,6 +388,7 @@ static void trace_start(jit_State *J) | |||
388 | J->needsnap = 0; | 388 | J->needsnap = 0; |
389 | J->bcskip = 0; | 389 | J->bcskip = 0; |
390 | J->guardemit.irt = 0; | 390 | J->guardemit.irt = 0; |
391 | J->postproc = LJ_POST_NONE; | ||
391 | setgcref(J->cur.startpt, obj2gco(J->pt)); | 392 | setgcref(J->cur.startpt, obj2gco(J->pt)); |
392 | 393 | ||
393 | L = J->L; | 394 | L = J->L; |
@@ -454,6 +455,7 @@ static void trace_stop(jit_State *J) | |||
454 | 455 | ||
455 | /* Commit new mcode only after all patching is done. */ | 456 | /* Commit new mcode only after all patching is done. */ |
456 | lj_mcode_commit(J, J->cur.mcode); | 457 | lj_mcode_commit(J, J->cur.mcode); |
458 | J->postproc = LJ_POST_NONE; | ||
457 | trace_save(J); | 459 | trace_save(J); |
458 | 460 | ||
459 | L = J->L; | 461 | L = J->L; |
@@ -485,6 +487,7 @@ static int trace_abort(jit_State *J) | |||
485 | TraceError e = LJ_TRERR_RECERR; | 487 | TraceError e = LJ_TRERR_RECERR; |
486 | TraceNo traceno; | 488 | TraceNo traceno; |
487 | 489 | ||
490 | J->postproc = LJ_POST_NONE; | ||
488 | lj_mcode_abort(J); | 491 | lj_mcode_abort(J); |
489 | if (tvisnum(L->top-1)) | 492 | if (tvisnum(L->top-1)) |
490 | e = (TraceError)lj_num2int(numV(L->top-1)); | 493 | e = (TraceError)lj_num2int(numV(L->top-1)); |