commit 9d2e454d6f42f86faf645a4a24f66023846ea9ab
parent 09e15692f3a237e2858cc67e2e7f07c3e4c983e7
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Fri, 21 Dec 2001 15:30:09 -0200
BUG: seg. fault when rawget/rawset get extra arguments
Diffstat:
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/bugs b/bugs
@@ -270,3 +270,10 @@ Tue Jul 10 16:59:18 EST 2001
>> error message for `%a' gave wrong line number
(by Leonardo Constantino; since 4.0)
+** lbaselib.c
+Fri Dec 21 15:21:05 EDT 2001
+>> seg. fault when rawget/rawset get extra arguments
+(by Eric Mauger; since 4.0b)
+
+
+
diff --git a/lbaselib.c b/lbaselib.c
@@ -185,7 +185,7 @@ static int luaB_globals (lua_State *L) {
static int luaB_rawget (lua_State *L) {
luaL_check_type(L, 1, LUA_TTABLE);
luaL_check_any(L, 2);
- lua_rawget(L, -2);
+ lua_rawget(L, 1);
return 1;
}
@@ -193,7 +193,7 @@ static int luaB_rawset (lua_State *L) {
luaL_check_type(L, 1, LUA_TTABLE);
luaL_check_any(L, 2);
luaL_check_any(L, 3);
- lua_rawset(L, -3);
+ lua_rawset(L, 1);
return 1;
}
@@ -449,7 +449,7 @@ static int luaB_foreachi (lua_State *L) {
static int luaB_foreach (lua_State *L) {
luaL_check_type(L, 1, LUA_TTABLE);
luaL_check_type(L, 2, LUA_TFUNCTION);
- lua_pushnil(L); /* first index */
+ lua_pushnil(L); /* first key */
for (;;) {
if (lua_next(L, 1) == 0)
return 0;