in 'luaD_call', use two functions instead of one with fixed boolean
argument
This commit is contained in:
14
lapi.c
14
lapi.c
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
** $Id: lapi.c,v 2.255 2015/09/09 13:45:50 roberto Exp roberto $
|
||||
** $Id: lapi.c,v 2.256 2015/10/06 16:10:22 roberto Exp roberto $
|
||||
** Lua API
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
@@ -121,11 +121,11 @@ LUA_API void lua_xmove (lua_State *from, lua_State *to, int n) {
|
||||
lua_lock(to);
|
||||
api_checknelems(from, n);
|
||||
api_check(from, G(from) == G(to), "moving among independent states");
|
||||
api_check(from, to->ci->top - to->top >= n, "not enough elements to move");
|
||||
api_check(from, to->ci->top - to->top >= n, "stack overflow");
|
||||
from->top -= n;
|
||||
for (i = 0; i < n; i++) {
|
||||
setobj2s(to, to->top, from->top + i);
|
||||
api_incr_top(to);
|
||||
to->top++; /* stack already checked by previous 'api_check' */
|
||||
}
|
||||
lua_unlock(to);
|
||||
}
|
||||
@@ -918,10 +918,10 @@ LUA_API void lua_callk (lua_State *L, int nargs, int nresults,
|
||||
if (k != NULL && L->nny == 0) { /* need to prepare continuation? */
|
||||
L->ci->u.c.k = k; /* save continuation */
|
||||
L->ci->u.c.ctx = ctx; /* save context */
|
||||
luaD_call(L, func, nresults, 1); /* do the call */
|
||||
luaD_call(L, func, nresults); /* do the call */
|
||||
}
|
||||
else /* no continuation or no yieldable */
|
||||
luaD_call(L, func, nresults, 0); /* just do the call */
|
||||
luaD_callnoyield(L, func, nresults); /* just do the call */
|
||||
adjustresults(L, nresults);
|
||||
lua_unlock(L);
|
||||
}
|
||||
@@ -939,7 +939,7 @@ struct CallS { /* data to 'f_call' */
|
||||
|
||||
static void f_call (lua_State *L, void *ud) {
|
||||
struct CallS *c = cast(struct CallS *, ud);
|
||||
luaD_call(L, c->func, c->nresults, 0);
|
||||
luaD_callnoyield(L, c->func, c->nresults);
|
||||
}
|
||||
|
||||
|
||||
@@ -977,7 +977,7 @@ LUA_API int lua_pcallk (lua_State *L, int nargs, int nresults, int errfunc,
|
||||
L->errfunc = func;
|
||||
setoah(ci->callstatus, L->allowhook); /* save value of 'allowhook' */
|
||||
ci->callstatus |= CIST_YPCALL; /* function can do error recovery */
|
||||
luaD_call(L, c.func, nresults, 1); /* do the call */
|
||||
luaD_call(L, c.func, nresults); /* do the call */
|
||||
ci->callstatus &= ~CIST_YPCALL;
|
||||
L->errfunc = ci->u.c.old_errfunc;
|
||||
status = LUA_OK; /* if it is here, there were no errors */
|
||||
|
||||
Reference in New Issue
Block a user