lua

A copy of the Lua development repository
Log | Files | Refs | README

commit 5e7dbd0b8b397ba8fbeb0698ca051829a683a9d8
parent cd6c276e412227c57c36679692b93ac57bfd5562
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Wed,  4 Aug 2010 15:40:04 -0300

api checks to ensure that thread is OK when using lua_call/lua_pcall

Diffstat:
Mlapi.c | 4+++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lapi.c b/lapi.c @@ -1,5 +1,5 @@ /* -** $Id: lapi.c,v 2.132 2010/07/02 17:35:06 roberto Exp roberto $ +** $Id: lapi.c,v 2.133 2010/07/25 15:18:19 roberto Exp roberto $ ** Lua API ** See Copyright Notice in lua.h */ @@ -799,6 +799,7 @@ LUA_API void lua_callk (lua_State *L, int nargs, int nresults, int ctx, api_check(L, k == NULL || !isLua(L->ci), "cannot use continuations inside hooks"); api_checknelems(L, nargs+1); + api_check(L, L->status == LUA_OK, "cannot do calls on non-normal thread"); checkresults(L, nargs, nresults); func = L->top - (nargs+1); if (k != NULL && L->nny == 0) { /* need to prepare continuation? */ @@ -839,6 +840,7 @@ LUA_API int lua_pcallk (lua_State *L, int nargs, int nresults, int errfunc, api_check(L, k == NULL || !isLua(L->ci), "cannot use continuations inside hooks"); api_checknelems(L, nargs+1); + api_check(L, L->status == LUA_OK, "cannot do calls on non-normal thread"); checkresults(L, nargs, nresults); if (errfunc == 0) func = 0;