소스 검색

Avoid snapshots for returns to known callers.

Mike Pall 15 년 전
부모
커밋
51c14bf1c8
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      src/lj_record.c

+ 2 - 2
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;