diff options
author | Mike Pall <mike> | 2013-11-22 05:42:56 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2013-11-22 05:42:56 +0100 |
commit | f371ed6bd8741834b4b0278cf2c9e95e32f2cb26 (patch) | |
tree | 52c4c461288427cf2705a36af2f8d485bf6b50d8 /src/lj_record.c | |
parent | 9d909883474e0079227aed20a50122b5969ed429 (diff) | |
download | luajit-f371ed6bd8741834b4b0278cf2c9e95e32f2cb26.tar.gz luajit-f371ed6bd8741834b4b0278cf2c9e95e32f2cb26.tar.bz2 luajit-f371ed6bd8741834b4b0278cf2c9e95e32f2cb26.zip |
Respect jit.off(func) when returning to a function, too.
Diffstat (limited to 'src/lj_record.c')
-rw-r--r-- | src/lj_record.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index 7336e0ac..30b9efc1 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -722,6 +722,8 @@ void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults) | |||
722 | ptrdiff_t nresults = bc_b(callins) ? (ptrdiff_t)bc_b(callins)-1 :gotresults; | 722 | ptrdiff_t nresults = bc_b(callins) ? (ptrdiff_t)bc_b(callins)-1 :gotresults; |
723 | BCReg cbase = bc_a(callins); | 723 | BCReg cbase = bc_a(callins); |
724 | GCproto *pt = funcproto(frame_func(frame - (cbase+1))); | 724 | GCproto *pt = funcproto(frame_func(frame - (cbase+1))); |
725 | if ((pt->flags & PROTO_NOJIT)) | ||
726 | lj_trace_err(J, LJ_TRERR_CJITOFF); | ||
725 | if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) { | 727 | if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) { |
726 | if (check_downrec_unroll(J, pt)) { | 728 | if (check_downrec_unroll(J, pt)) { |
727 | J->maxslot = (BCReg)(rbase + gotresults); | 729 | J->maxslot = (BCReg)(rbase + gotresults); |