aboutsummaryrefslogtreecommitdiff
path: root/lapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'lapi.c')
-rw-r--r--lapi.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/lapi.c b/lapi.c
index 41e6b86d..a9cf2fdb 100644
--- a/lapi.c
+++ b/lapi.c
@@ -192,9 +192,8 @@ LUA_API void lua_settop (lua_State *L, int idx) {
192 if (diff < 0 && hastocloseCfunc(ci->nresults)) 192 if (diff < 0 && hastocloseCfunc(ci->nresults))
193 luaF_close(L, L->top + diff, CLOSEKTOP, 0); 193 luaF_close(L, L->top + diff, CLOSEKTOP, 0);
194#endif 194#endif
195 api_check(L, L->tbclist < L->top + diff, "cannot pop an unclosed slot");
195 L->top += diff; 196 L->top += diff;
196 api_check(L, L->openupval == NULL || uplevel(L->openupval) < L->top,
197 "cannot pop an unclosed slot");
198 lua_unlock(L); 197 lua_unlock(L);
199} 198}
200 199
@@ -203,8 +202,7 @@ LUA_API void lua_closeslot (lua_State *L, int idx) {
203 StkId level; 202 StkId level;
204 lua_lock(L); 203 lua_lock(L);
205 level = index2stack(L, idx); 204 level = index2stack(L, idx);
206 api_check(L, hastocloseCfunc(L->ci->nresults) && L->openupval != NULL && 205 api_check(L, hastocloseCfunc(L->ci->nresults) && L->tbclist == level,
207 uplevel(L->openupval) == level,
208 "no variable to close at given level"); 206 "no variable to close at given level");
209 luaF_close(L, level, CLOSEKTOP, 0); 207 luaF_close(L, level, CLOSEKTOP, 0);
210 level = index2stack(L, idx); /* stack may be moved */ 208 level = index2stack(L, idx); /* stack may be moved */
@@ -1266,8 +1264,7 @@ LUA_API void lua_toclose (lua_State *L, int idx) {
1266 lua_lock(L); 1264 lua_lock(L);
1267 o = index2stack(L, idx); 1265 o = index2stack(L, idx);
1268 nresults = L->ci->nresults; 1266 nresults = L->ci->nresults;
1269 api_check(L, L->openupval == NULL || uplevel(L->openupval) <= o, 1267 api_check(L, L->tbclist < o, "given index below or equal a marked one");
1270 "marked index below or equal new one");
1271 luaF_newtbcupval(L, o); /* create new to-be-closed upvalue */ 1268 luaF_newtbcupval(L, o); /* create new to-be-closed upvalue */
1272 if (!hastocloseCfunc(nresults)) /* function not marked yet? */ 1269 if (!hastocloseCfunc(nresults)) /* function not marked yet? */
1273 L->ci->nresults = codeNresults(nresults); /* mark it */ 1270 L->ci->nresults = codeNresults(nresults); /* mark it */