aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lapi.c11
-rw-r--r--ltable.c4
2 files changed, 7 insertions, 8 deletions
diff --git a/lapi.c b/lapi.c
index 36b77abe..ffeaf285 100644
--- a/lapi.c
+++ b/lapi.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lapi.c,v 1.158 2001/10/31 19:40:14 roberto Exp roberto $ 2** $Id: lapi.c,v 1.159 2001/10/31 19:58:11 roberto Exp $
3** Lua API 3** Lua API
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -608,19 +608,18 @@ LUA_API void lua_error (lua_State *L, const l_char *s) {
608 608
609LUA_API int lua_next (lua_State *L, int index) { 609LUA_API int lua_next (lua_State *L, int index) {
610 StkId t; 610 StkId t;
611 int more;
612 lua_lock(L); 611 lua_lock(L);
613 t = luaA_index(L, index); 612 t = luaA_index(L, index);
614 api_check(L, ttype(t) == LUA_TTABLE); 613 api_check(L, ttype(t) == LUA_TTABLE);
615 more = luaH_index(L, hvalue(t), luaA_index(L, -1)); 614 index = luaH_index(L, hvalue(t), luaA_index(L, -1));
616 more = (luaH_nexti(hvalue(t), more, L->top - 1) != -1); 615 index = (luaH_nexti(hvalue(t), index, L->top - 1) != -1);
617 if (more) { 616 if (index) {
618 api_incr_top(L); 617 api_incr_top(L);
619 } 618 }
620 else /* no more elements */ 619 else /* no more elements */
621 L->top -= 1; /* remove key */ 620 L->top -= 1; /* remove key */
622 lua_unlock(L); 621 lua_unlock(L);
623 return more; 622 return index;
624} 623}
625 624
626 625
diff --git a/ltable.c b/ltable.c
index a4828fca..486b09a8 100644
--- a/ltable.c
+++ b/ltable.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltable.c,v 1.86 2001/09/07 17:30:16 roberto Exp $ 2** $Id: ltable.c,v 1.87 2001/10/25 19:14:14 roberto Exp $
3** Lua tables (hash) 3** Lua tables (hash)
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -96,7 +96,7 @@ int luaH_index (lua_State *L, Table *t, const TObject *key) {
96 if (ttype(key) == LUA_TNIL) return -1; /* first iteration */ 96 if (ttype(key) == LUA_TNIL) return -1; /* first iteration */
97 i = arrayindex(key); 97 i = arrayindex(key);
98 if (0 <= i && i < t->sizearray) { /* is `key' inside array part? */ 98 if (0 <= i && i < t->sizearray) { /* is `key' inside array part? */
99 return i; /* yes; that's the index */ 99 return i-1; /* yes; that's the index (corrected to C) */
100 } 100 }
101 else { 101 else {
102 const TObject *v = luaH_get(t, key); 102 const TObject *v = luaH_get(t, key);