|
|
|
@ -693,7 +693,7 @@ void luaV_execute (lua_State *L) {
|
|
|
|
|
TValue *k;
|
|
|
|
|
StkId base;
|
|
|
|
|
newframe: /* reentry point when frame changes (call/return) */
|
|
|
|
|
stackDump(L, "on function entry");
|
|
|
|
|
/* stackDump(L, "on function entry"); */
|
|
|
|
|
lua_assert(ci == L->ci);
|
|
|
|
|
cl = clLvalue(ci->func);
|
|
|
|
|
k = cl->p->k;
|
|
|
|
@ -1034,12 +1034,12 @@ newframe: /* reentry point when frame changes (call/return) */
|
|
|
|
|
}
|
|
|
|
|
} break;
|
|
|
|
|
case OP_RETURN: {
|
|
|
|
|
stackDump(L, "before return");
|
|
|
|
|
/* stackDump(L, "before return"); */
|
|
|
|
|
int b = GETARG_B(i);
|
|
|
|
|
if (b != 0) L->top = ra + b - 1;
|
|
|
|
|
if (cl->p->sizep > 0) luaF_close(L, base);
|
|
|
|
|
b = luaD_poscall(L, ra);
|
|
|
|
|
stackDump(L, "after return");
|
|
|
|
|
/* stackDump(L, "after return"); */
|
|
|
|
|
if (!(ci->callstatus & CIST_REENTRY)) /* 'ci' still the called one */
|
|
|
|
|
return; /* external invocation: return */
|
|
|
|
|
else { /* invocation via reentry: continue execution */
|
|
|
|
|