diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_trace.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c index 5de43f23..f907a77f 100644 --- a/src/lj_trace.c +++ b/src/lj_trace.c | |||
| @@ -575,17 +575,16 @@ static TValue *trace_state(lua_State *L, lua_CFunction dummy, void *ud) | |||
| 575 | trace_pendpatch(J, 0); | 575 | trace_pendpatch(J, 0); |
| 576 | setvmstate(J2G(J), RECORD); | 576 | setvmstate(J2G(J), RECORD); |
| 577 | lj_vmevent_send_(L, RECORD, | 577 | lj_vmevent_send_(L, RECORD, |
| 578 | TValue savetv; /* Save tmptv state for trace recorder. */ | 578 | /* Save/restore tmptv state for trace recorder. */ |
| 579 | TValue savetv2; | 579 | TValue savetv = J2G(J)->tmptv; |
| 580 | copyTV(L, &savetv, &J2G(J)->tmptv); | 580 | TValue savetv2 = J2G(J)->tmptv2; |
| 581 | copyTV(L, &savetv2, &J2G(J)->tmptv2); | ||
| 582 | setintV(L->top++, J->cur.traceno); | 581 | setintV(L->top++, J->cur.traceno); |
| 583 | setfuncV(L, L->top++, J->fn); | 582 | setfuncV(L, L->top++, J->fn); |
| 584 | setintV(L->top++, J->pt ? (int32_t)proto_bcpos(J->pt, J->pc) : -1); | 583 | setintV(L->top++, J->pt ? (int32_t)proto_bcpos(J->pt, J->pc) : -1); |
| 585 | setintV(L->top++, J->framedepth); | 584 | setintV(L->top++, J->framedepth); |
| 586 | , | 585 | , |
| 587 | copyTV(L, &J2G(J)->tmptv, &savetv); | 586 | J2G(J)->tmptv = savetv; |
| 588 | copyTV(L, &J2G(J)->tmptv2, &savetv2); | 587 | J2G(J)->tmptv2 = savetv2; |
| 589 | ); | 588 | ); |
| 590 | lj_record_ins(J); | 589 | lj_record_ins(J); |
| 591 | break; | 590 | break; |
