From 51c14bf1c80367ec2645819cbdb93d84524060d2 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sun, 21 Mar 2010 16:01:44 +0100 Subject: [PATCH] Avoid snapshots for returns to known callers. --- src/lj_record.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lj_record.c b/src/lj_record.c index 33272316..54068697 100644 --- a/src/lj_record.c +++ b/src/lj_record.c @@ -575,8 +575,8 @@ static void rec_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults) ptrdiff_t nresults = bc_b(callins) ? (ptrdiff_t)bc_b(callins)-1 :gotresults; BCReg cbase = bc_a(callins); GCproto *pt = funcproto(frame_func(frame - (cbase+1))); - if (J->pt && frame == J->L->base - 1) { - if (J->framedepth == 0 && check_downrec_unroll(J, pt)) { + if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) { + if (check_downrec_unroll(J, pt)) { J->maxslot = (BCReg)(rbase + nresults); rec_stop(J, J->curtrace); /* Down-recursion. */ return;