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 10d114b3..c2329394 100644 --- a/src/lj_trace.c +++ b/src/lj_trace.c | |||
@@ -672,9 +672,11 @@ static TValue *trace_state(lua_State *L, lua_CFunction dummy, void *ud) | |||
672 | trace_pendpatch(J, 0); | 672 | trace_pendpatch(J, 0); |
673 | setvmstate(J2G(J), RECORD); | 673 | setvmstate(J2G(J), RECORD); |
674 | lj_vmevent_send_(L, RECORD, | 674 | lj_vmevent_send_(L, RECORD, |
675 | /* Save/restore tmptv state for trace recorder. */ | 675 | /* Save/restore state for trace recorder. */ |
676 | TValue savetv = J2G(J)->tmptv; | 676 | TValue savetv = J2G(J)->tmptv; |
677 | TValue savetv2 = J2G(J)->tmptv2; | 677 | TValue savetv2 = J2G(J)->tmptv2; |
678 | TraceNo parent = J->parent; | ||
679 | ExitNo exitno = J->exitno; | ||
678 | setintV(L->top++, J->cur.traceno); | 680 | setintV(L->top++, J->cur.traceno); |
679 | setfuncV(L, L->top++, J->fn); | 681 | setfuncV(L, L->top++, J->fn); |
680 | setintV(L->top++, J->pt ? (int32_t)proto_bcpos(J->pt, J->pc) : -1); | 682 | setintV(L->top++, J->pt ? (int32_t)proto_bcpos(J->pt, J->pc) : -1); |
@@ -682,6 +684,8 @@ static TValue *trace_state(lua_State *L, lua_CFunction dummy, void *ud) | |||
682 | , | 684 | , |
683 | J2G(J)->tmptv = savetv; | 685 | J2G(J)->tmptv = savetv; |
684 | J2G(J)->tmptv2 = savetv2; | 686 | J2G(J)->tmptv2 = savetv2; |
687 | J->parent = parent; | ||
688 | J->exitno = exitno; | ||
685 | ); | 689 | ); |
686 | lj_record_ins(J); | 690 | lj_record_ins(J); |
687 | break; | 691 | break; |