diff options
-rw-r--r-- | src/lj_record.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index 41b2221a..472597b6 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -666,7 +666,8 @@ void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults) | |||
666 | GCproto *pt = funcproto(frame_func(frame - (cbase+1))); | 666 | GCproto *pt = funcproto(frame_func(frame - (cbase+1))); |
667 | if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) { | 667 | if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) { |
668 | if (check_downrec_unroll(J, pt)) { | 668 | if (check_downrec_unroll(J, pt)) { |
669 | J->maxslot = (BCReg)(rbase + nresults); | 669 | J->maxslot = (BCReg)(rbase + gotresults); |
670 | lj_snap_purge(J); | ||
670 | rec_stop(J, J->cur.traceno); /* Down-recursion. */ | 671 | rec_stop(J, J->cur.traceno); /* Down-recursion. */ |
671 | return; | 672 | return; |
672 | } | 673 | } |