Roberto Ierusalimschy 20 년 전
부모
커밋
a7ea0c71e8
1개의 변경된 파일4개의 추가작업 그리고 5개의 파일을 삭제
  1. 4 5
      lvm.c

+ 4 - 5
lvm.c

@@ -1,5 +1,5 @@
 /*
-** $Id: lvm.c,v 2.36 2005/04/04 18:12:51 roberto Exp roberto $
+** $Id: lvm.c,v 2.37 2005/04/05 13:41:29 roberto Exp roberto $
 ** Lua virtual machine
 ** See Copyright Notice in lua.h
 */
@@ -642,16 +642,15 @@ StkId luaV_execute (lua_State *L, int nexeccalls) {
         }
       }
       case OP_RETURN: {
-        CallInfo *ci = L->ci - 1;  /* previous function frame */
         int b = GETARG_B(i);
         if (b != 0) L->top = ra+b-1;
         if (L->openupval) luaF_close(L, base);
         if (--nexeccalls == 0)  /* was previous function running `here'? */
           return ra;  /* no: return */
         else {  /* yes: continue its execution */
-          int nresults = (ci+1)->nresults;
-          lua_assert(isLua(ci));
-          lua_assert(GET_OPCODE(*(ci->savedpc - 1)) == OP_CALL);
+          int nresults = L->ci->nresults;
+          lua_assert(isLua(L->ci - 1));
+          lua_assert(GET_OPCODE(*((L->ci - 1)->savedpc - 1)) == OP_CALL);
           luaD_poscall(L, nresults, ra);
           if (nresults >= 0) L->top = L->ci->top;
           goto retentry;