aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-10-24 15:58:54 +0200
committerMike Pall <mike>2011-10-24 15:58:54 +0200
commit84683405fbacad0938a953d9654bec27ac75d565 (patch)
treeb7c1e31ebe0f4a9eb1528e6776c9f274afbdd1bd /src
parent86a5cc427dab0c41101a6e1f1c647973f5e2c15e (diff)
downloadluajit-84683405fbacad0938a953d9654bec27ac75d565.tar.gz
luajit-84683405fbacad0938a953d9654bec27ac75d565.tar.bz2
luajit-84683405fbacad0938a953d9654bec27ac75d565.zip
Don't save/restore tmptv with copyTV.
Diffstat (limited to 'src')
-rw-r--r--src/lj_trace.c11
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;