diff options
| -rw-r--r-- | lbaselib.c | 14 |
1 files changed, 9 insertions, 5 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lbaselib.c,v 1.214 2009/03/23 14:26:12 roberto Exp roberto $ | 2 | ** $Id: lbaselib.c,v 1.215 2009/04/08 18:04:33 roberto Exp roberto $ |
| 3 | ** Basic library | 3 | ** Basic library |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -512,8 +512,10 @@ static const luaL_Reg base_funcs[] = { | |||
| 512 | 512 | ||
| 513 | static int auxresume (lua_State *L, lua_State *co, int narg) { | 513 | static int auxresume (lua_State *L, lua_State *co, int narg) { |
| 514 | int status; | 514 | int status; |
| 515 | if (!lua_checkstack(co, narg)) | 515 | if (!lua_checkstack(co, narg)) { |
| 516 | return luaL_error(L, "too many arguments to resume"); | 516 | lua_pushliteral(L, "too many arguments to resume"); |
| 517 | return -1; /* error flag */ | ||
| 518 | } | ||
| 517 | if (lua_status(co) == LUA_OK && lua_gettop(co) == 0) { | 519 | if (lua_status(co) == LUA_OK && lua_gettop(co) == 0) { |
| 518 | lua_pushliteral(L, "cannot resume dead coroutine"); | 520 | lua_pushliteral(L, "cannot resume dead coroutine"); |
| 519 | return -1; /* error flag */ | 521 | return -1; /* error flag */ |
| @@ -522,8 +524,10 @@ static int auxresume (lua_State *L, lua_State *co, int narg) { | |||
| 522 | status = lua_resume(co, narg); | 524 | status = lua_resume(co, narg); |
| 523 | if (status == LUA_OK || status == LUA_YIELD) { | 525 | if (status == LUA_OK || status == LUA_YIELD) { |
| 524 | int nres = lua_gettop(co); | 526 | int nres = lua_gettop(co); |
| 525 | if (!lua_checkstack(L, nres + 1)) | 527 | if (!lua_checkstack(L, nres + 1)) { |
| 526 | return luaL_error(L, "too many results to resume"); | 528 | lua_pushliteral(L, "too many results to resume"); |
| 529 | return -1; /* error flag */ | ||
| 530 | } | ||
| 527 | lua_xmove(co, L, nres); /* move yielded values */ | 531 | lua_xmove(co, L, nres); /* move yielded values */ |
| 528 | return nres; | 532 | return nres; |
| 529 | } | 533 | } |
