commit c2aa7bd72d620731b5a54b532523dbd9f8e1bfc3
parent f9dd50cefc6c1c2c57f24d9985c1cc073d9d7300
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Mon, 25 Sep 2000 11:48:20 -0300
bug: lua_gettable does not get key from stack top
Diffstat:
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/bugs b/bugs
@@ -208,3 +208,8 @@ Fri Sep 22 15:12:37 EST 2000
>> `read("*w")' should return nil at EOF
(by roberto; since 4.0b)
+** lvm.c
+Mon Sep 25 11:47:48 EST 2000
+>> lua_gettable does not get key from stack top
+(by Philip Yi; since 4.0b)
+
diff --git a/ltests.c b/ltests.c
@@ -1,5 +1,5 @@
/*
-** $Id: ltests.c,v 1.41 2000/09/11 19:42:57 roberto Exp roberto $
+** $Id: ltests.c,v 1.42 2000/09/14 14:09:31 roberto Exp roberto $
** Internal Module for Debugging of the Lua Implementation
** See Copyright Notice in lua.h
*/
@@ -410,6 +410,12 @@ static int testC (lua_State *L) {
else if EQ("insert") {
lua_insert(L, getnum);
}
+ else if EQ("gettable") {
+ lua_gettable(L, getnum);
+ }
+ else if EQ("settable") {
+ lua_settable(L, getnum);
+ }
else if EQ("next") {
lua_next(L, -2);
}
diff --git a/lvm.c b/lvm.c
@@ -1,5 +1,5 @@
/*
-** $Id: lvm.c,v 1.135 2000/09/11 17:38:42 roberto Exp roberto $
+** $Id: lvm.c,v 1.136 2000/09/20 17:57:08 roberto Exp roberto $
** Lua virtual machine
** See Copyright Notice in lua.h
*/
@@ -120,7 +120,7 @@ const TObject *luaV_gettable (lua_State *L, StkId t) {
((tg = hvalue(t)->htag) == TAG_TABLE || /* with default tag? */
ttype(luaT_getim(L, tg, IM_GETTABLE)) == TAG_NIL)) { /* or no TM? */
/* do a primitive get */
- const TObject *h = luaH_get(L, hvalue(t), t+1);
+ const TObject *h = luaH_get(L, hvalue(t), L->top-1);
/* result is no nil or there is no `index' tag method? */
if (ttype(h) != TAG_NIL ||
(ttype(im=luaT_getim(L, tg, IM_INDEX)) == TAG_NIL))