diff --git a/bugs b/bugs index 0b245d31..abb5d9f7 100644 --- 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 index 77656e12..cb914f18 100644 --- 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;