diff options
| -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 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; |
