aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_trace.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c
index d4e7d5d4..89c3c5ed 100644
--- a/src/lj_trace.c
+++ b/src/lj_trace.c
@@ -587,9 +587,11 @@ static TValue *trace_state(lua_State *L, lua_CFunction dummy, void *ud)
587 trace_pendpatch(J, 0); 587 trace_pendpatch(J, 0);
588 setvmstate(J2G(J), RECORD); 588 setvmstate(J2G(J), RECORD);
589 lj_vmevent_send_(L, RECORD, 589 lj_vmevent_send_(L, RECORD,
590 /* Save/restore tmptv state for trace recorder. */ 590 /* Save/restore state for trace recorder. */
591 TValue savetv = J2G(J)->tmptv; 591 TValue savetv = J2G(J)->tmptv;
592 TValue savetv2 = J2G(J)->tmptv2; 592 TValue savetv2 = J2G(J)->tmptv2;
593 TraceNo parent = J->parent;
594 ExitNo exitno = J->exitno;
593 setintV(L->top++, J->cur.traceno); 595 setintV(L->top++, J->cur.traceno);
594 setfuncV(L, L->top++, J->fn); 596 setfuncV(L, L->top++, J->fn);
595 setintV(L->top++, J->pt ? (int32_t)proto_bcpos(J->pt, J->pc) : -1); 597 setintV(L->top++, J->pt ? (int32_t)proto_bcpos(J->pt, J->pc) : -1);
@@ -597,6 +599,8 @@ static TValue *trace_state(lua_State *L, lua_CFunction dummy, void *ud)
597 , 599 ,
598 J2G(J)->tmptv = savetv; 600 J2G(J)->tmptv = savetv;
599 J2G(J)->tmptv2 = savetv2; 601 J2G(J)->tmptv2 = savetv2;
602 J->parent = parent;
603 J->exitno = exitno;
600 ); 604 );
601 lj_record_ins(J); 605 lj_record_ins(J);
602 break; 606 break;