Explorar o código

bug: `resume' was checking the wrong value for stack overflow

Roberto Ierusalimschy %!s(int64=22) %!d(string=hai) anos
pai
achega
75f73172c4
Modificáronse 2 ficheiros con 12 adicións e 2 borrados
  1. 10 0
      bugs
  2. 2 2
      lbaselib.c

+ 10 - 0
bugs

@@ -303,3 +303,13 @@ Fri Dec  6 17:06:40 UTC 2002
 >> scope of generic for variables is not sound
 >> scope of generic for variables is not sound
 (by Gavin Wraith; since 5.0a)
 (by Gavin Wraith; since 5.0a)
 
 
+
+
+
+=================================================================
+--- Version 5.0 beta
+** lbaselib.c
+Fri Dec 20 09:53:19 UTC 2002
+>> `resume' was checking the wrong value for stack overflow
+(by Maik Zimmermann; since 5.0b)
+

+ 2 - 2
lbaselib.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lbaselib.c,v 1.114 2002/12/04 17:38:31 roberto Exp roberto $
+** $Id: lbaselib.c,v 1.115 2002/12/06 17:05:15 roberto Exp roberto $
 ** Basic library
 ** Basic library
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -540,7 +540,7 @@ static int auxresume (lua_State *L, lua_State *co, int narg) {
   status = lua_resume(co, narg);
   status = lua_resume(co, narg);
   if (status == 0) {
   if (status == 0) {
     int nres = lua_gettop(co);
     int nres = lua_gettop(co);
-    if (!lua_checkstack(L, narg))
+    if (!lua_checkstack(L, nres))
       luaL_error(L, "too many results to resume");
       luaL_error(L, "too many results to resume");
     lua_xmove(co, L, nres);  /* move yielded values */
     lua_xmove(co, L, nres);  /* move yielded values */
     return nres;
     return nres;