|
@@ -1,5 +1,5 @@
|
|
/*
|
|
/*
|
|
-** $Id: lapi.c,v 1.230 2003/02/20 19:33:23 roberto Exp roberto $
|
|
|
|
|
|
+** $Id: lapi.c,v 1.231 2003/02/24 16:54:20 roberto Exp roberto $
|
|
** Lua API
|
|
** Lua API
|
|
** See Copyright Notice in lua.h
|
|
** See Copyright Notice in lua.h
|
|
*/
|
|
*/
|
|
@@ -45,43 +45,43 @@ const char lua_ident[] =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-static TObject *negindex (lua_State *L, int index) {
|
|
|
|
- if (index > LUA_REGISTRYINDEX) {
|
|
|
|
- api_check(L, index != 0 && -index <= L->top - L->base);
|
|
|
|
- return L->top+index;
|
|
|
|
|
|
+static TObject *negindex (lua_State *L, int idx) {
|
|
|
|
+ if (idx > LUA_REGISTRYINDEX) {
|
|
|
|
+ api_check(L, idx != 0 && -idx <= L->top - L->base);
|
|
|
|
+ return L->top+idx;
|
|
}
|
|
}
|
|
- else switch (index) { /* pseudo-indices */
|
|
|
|
|
|
+ else switch (idx) { /* pseudo-indices */
|
|
case LUA_REGISTRYINDEX: return registry(L);
|
|
case LUA_REGISTRYINDEX: return registry(L);
|
|
case LUA_GLOBALSINDEX: return gt(L);
|
|
case LUA_GLOBALSINDEX: return gt(L);
|
|
default: {
|
|
default: {
|
|
TObject *func = (L->base - 1);
|
|
TObject *func = (L->base - 1);
|
|
- index = LUA_GLOBALSINDEX - index;
|
|
|
|
- api_check(L, iscfunction(func) && index <= clvalue(func)->c.nupvalues);
|
|
|
|
- return &clvalue(func)->c.upvalue[index-1];
|
|
|
|
|
|
+ idx = LUA_GLOBALSINDEX - idx;
|
|
|
|
+ api_check(L, iscfunction(func) && idx <= clvalue(func)->c.nupvalues);
|
|
|
|
+ return &clvalue(func)->c.upvalue[idx-1];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-static TObject *luaA_index (lua_State *L, int index) {
|
|
|
|
- if (index > 0) {
|
|
|
|
- api_check(L, index <= L->top - L->base);
|
|
|
|
- return L->base + index - 1;
|
|
|
|
|
|
+static TObject *luaA_index (lua_State *L, int idx) {
|
|
|
|
+ if (idx > 0) {
|
|
|
|
+ api_check(L, idx <= L->top - L->base);
|
|
|
|
+ return L->base + idx - 1;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
- return negindex(L, index);
|
|
|
|
|
|
+ return negindex(L, idx);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-static TObject *luaA_indexAcceptable (lua_State *L, int index) {
|
|
|
|
- if (index > 0) {
|
|
|
|
- TObject *o = L->base+(index-1);
|
|
|
|
- api_check(L, index <= L->stack_last - L->base);
|
|
|
|
|
|
+static TObject *luaA_indexAcceptable (lua_State *L, int idx) {
|
|
|
|
+ if (idx > 0) {
|
|
|
|
+ TObject *o = L->base+(idx-1);
|
|
|
|
+ api_check(L, idx <= L->stack_last - L->base);
|
|
if (o >= L->top) return NULL;
|
|
if (o >= L->top) return NULL;
|
|
else return o;
|
|
else return o;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
- return negindex(L, index);
|
|
|
|
|
|
+ return negindex(L, idx);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -154,55 +154,55 @@ LUA_API int lua_gettop (lua_State *L) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_settop (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API void lua_settop (lua_State *L, int idx) {
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
- if (index >= 0) {
|
|
|
|
- api_check(L, index <= L->stack_last - L->base);
|
|
|
|
- while (L->top < L->base + index)
|
|
|
|
|
|
+ if (idx >= 0) {
|
|
|
|
+ api_check(L, idx <= L->stack_last - L->base);
|
|
|
|
+ while (L->top < L->base + idx)
|
|
setnilvalue(L->top++);
|
|
setnilvalue(L->top++);
|
|
- L->top = L->base + index;
|
|
|
|
|
|
+ L->top = L->base + idx;
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
- api_check(L, -(index+1) <= (L->top - L->base));
|
|
|
|
- L->top += index+1; /* `subtract' index (index is negative) */
|
|
|
|
|
|
+ api_check(L, -(idx+1) <= (L->top - L->base));
|
|
|
|
+ L->top += idx+1; /* `subtract' index (index is negative) */
|
|
}
|
|
}
|
|
lua_unlock(L);
|
|
lua_unlock(L);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_remove (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API void lua_remove (lua_State *L, int idx) {
|
|
StkId p;
|
|
StkId p;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
- p = luaA_index(L, index);
|
|
|
|
|
|
+ p = luaA_index(L, idx);
|
|
while (++p < L->top) setobjs2s(p-1, p);
|
|
while (++p < L->top) setobjs2s(p-1, p);
|
|
L->top--;
|
|
L->top--;
|
|
lua_unlock(L);
|
|
lua_unlock(L);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_insert (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API void lua_insert (lua_State *L, int idx) {
|
|
StkId p;
|
|
StkId p;
|
|
StkId q;
|
|
StkId q;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
- p = luaA_index(L, index);
|
|
|
|
|
|
+ p = luaA_index(L, idx);
|
|
for (q = L->top; q>p; q--) setobjs2s(q, q-1);
|
|
for (q = L->top; q>p; q--) setobjs2s(q, q-1);
|
|
setobjs2s(p, L->top);
|
|
setobjs2s(p, L->top);
|
|
lua_unlock(L);
|
|
lua_unlock(L);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_replace (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API void lua_replace (lua_State *L, int idx) {
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
api_checknelems(L, 1);
|
|
api_checknelems(L, 1);
|
|
- setobj(luaA_index(L, index), L->top - 1); /* write barrier */
|
|
|
|
|
|
+ setobj(luaA_index(L, idx), L->top - 1); /* write barrier */
|
|
L->top--;
|
|
L->top--;
|
|
lua_unlock(L);
|
|
lua_unlock(L);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_pushvalue (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API void lua_pushvalue (lua_State *L, int idx) {
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
- setobj2s(L->top, luaA_index(L, index));
|
|
|
|
|
|
+ setobj2s(L->top, luaA_index(L, idx));
|
|
api_incr_top(L);
|
|
api_incr_top(L);
|
|
lua_unlock(L);
|
|
lua_unlock(L);
|
|
}
|
|
}
|
|
@@ -214,8 +214,8 @@ LUA_API void lua_pushvalue (lua_State *L, int index) {
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
|
|
-LUA_API int lua_type (lua_State *L, int index) {
|
|
|
|
- StkId o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+LUA_API int lua_type (lua_State *L, int idx) {
|
|
|
|
+ StkId o = luaA_indexAcceptable(L, idx);
|
|
return (o == NULL) ? LUA_TNONE : ttype(o);
|
|
return (o == NULL) ? LUA_TNONE : ttype(o);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -226,27 +226,27 @@ LUA_API const char *lua_typename (lua_State *L, int t) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API int lua_iscfunction (lua_State *L, int index) {
|
|
|
|
- StkId o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+LUA_API int lua_iscfunction (lua_State *L, int idx) {
|
|
|
|
+ StkId o = luaA_indexAcceptable(L, idx);
|
|
return (o == NULL) ? 0 : iscfunction(o);
|
|
return (o == NULL) ? 0 : iscfunction(o);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API int lua_isnumber (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API int lua_isnumber (lua_State *L, int idx) {
|
|
TObject n;
|
|
TObject n;
|
|
- const TObject *o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+ const TObject *o = luaA_indexAcceptable(L, idx);
|
|
return (o != NULL && tonumber(o, &n));
|
|
return (o != NULL && tonumber(o, &n));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API int lua_isstring (lua_State *L, int index) {
|
|
|
|
- int t = lua_type(L, index);
|
|
|
|
|
|
+LUA_API int lua_isstring (lua_State *L, int idx) {
|
|
|
|
+ int t = lua_type(L, idx);
|
|
return (t == LUA_TSTRING || t == LUA_TNUMBER);
|
|
return (t == LUA_TSTRING || t == LUA_TNUMBER);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API int lua_isuserdata (lua_State *L, int index) {
|
|
|
|
- const TObject *o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+LUA_API int lua_isuserdata (lua_State *L, int idx) {
|
|
|
|
+ const TObject *o = luaA_indexAcceptable(L, idx);
|
|
return (o != NULL && (ttisuserdata(o) || ttislightuserdata(o)));
|
|
return (o != NULL && (ttisuserdata(o) || ttislightuserdata(o)));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -286,9 +286,9 @@ LUA_API int lua_lessthan (lua_State *L, int index1, int index2) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-LUA_API lua_Number lua_tonumber (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API lua_Number lua_tonumber (lua_State *L, int idx) {
|
|
TObject n;
|
|
TObject n;
|
|
- const TObject *o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+ const TObject *o = luaA_indexAcceptable(L, idx);
|
|
if (o != NULL && tonumber(o, &n))
|
|
if (o != NULL && tonumber(o, &n))
|
|
return nvalue(o);
|
|
return nvalue(o);
|
|
else
|
|
else
|
|
@@ -296,14 +296,14 @@ LUA_API lua_Number lua_tonumber (lua_State *L, int index) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API int lua_toboolean (lua_State *L, int index) {
|
|
|
|
- const TObject *o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+LUA_API int lua_toboolean (lua_State *L, int idx) {
|
|
|
|
+ const TObject *o = luaA_indexAcceptable(L, idx);
|
|
return (o != NULL) && !l_isfalse(o);
|
|
return (o != NULL) && !l_isfalse(o);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API const char *lua_tostring (lua_State *L, int index) {
|
|
|
|
- StkId o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+LUA_API const char *lua_tostring (lua_State *L, int idx) {
|
|
|
|
+ StkId o = luaA_indexAcceptable(L, idx);
|
|
if (o == NULL)
|
|
if (o == NULL)
|
|
return NULL;
|
|
return NULL;
|
|
else if (ttisstring(o))
|
|
else if (ttisstring(o))
|
|
@@ -319,8 +319,8 @@ LUA_API const char *lua_tostring (lua_State *L, int index) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API size_t lua_strlen (lua_State *L, int index) {
|
|
|
|
- StkId o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+LUA_API size_t lua_strlen (lua_State *L, int idx) {
|
|
|
|
+ StkId o = luaA_indexAcceptable(L, idx);
|
|
if (o == NULL)
|
|
if (o == NULL)
|
|
return 0;
|
|
return 0;
|
|
else if (ttisstring(o))
|
|
else if (ttisstring(o))
|
|
@@ -335,14 +335,14 @@ LUA_API size_t lua_strlen (lua_State *L, int index) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API lua_CFunction lua_tocfunction (lua_State *L, int index) {
|
|
|
|
- StkId o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) {
|
|
|
|
+ StkId o = luaA_indexAcceptable(L, idx);
|
|
return (o == NULL || !iscfunction(o)) ? NULL : clvalue(o)->c.f;
|
|
return (o == NULL || !iscfunction(o)) ? NULL : clvalue(o)->c.f;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void *lua_touserdata (lua_State *L, int index) {
|
|
|
|
- StkId o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+LUA_API void *lua_touserdata (lua_State *L, int idx) {
|
|
|
|
+ StkId o = luaA_indexAcceptable(L, idx);
|
|
if (o == NULL) return NULL;
|
|
if (o == NULL) return NULL;
|
|
switch (ttype(o)) {
|
|
switch (ttype(o)) {
|
|
case LUA_TUSERDATA: return (uvalue(o) + 1);
|
|
case LUA_TUSERDATA: return (uvalue(o) + 1);
|
|
@@ -352,14 +352,14 @@ LUA_API void *lua_touserdata (lua_State *L, int index) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API lua_State *lua_tothread (lua_State *L, int index) {
|
|
|
|
- StkId o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+LUA_API lua_State *lua_tothread (lua_State *L, int idx) {
|
|
|
|
+ StkId o = luaA_indexAcceptable(L, idx);
|
|
return (o == NULL || !ttisthread(o)) ? NULL : thvalue(o);
|
|
return (o == NULL || !ttisthread(o)) ? NULL : thvalue(o);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API const void *lua_topointer (lua_State *L, int index) {
|
|
|
|
- StkId o = luaA_indexAcceptable(L, index);
|
|
|
|
|
|
+LUA_API const void *lua_topointer (lua_State *L, int idx) {
|
|
|
|
+ StkId o = luaA_indexAcceptable(L, idx);
|
|
if (o == NULL) return NULL;
|
|
if (o == NULL) return NULL;
|
|
else {
|
|
else {
|
|
switch (ttype(o)) {
|
|
switch (ttype(o)) {
|
|
@@ -367,7 +367,7 @@ LUA_API const void *lua_topointer (lua_State *L, int index) {
|
|
case LUA_TFUNCTION: return clvalue(o);
|
|
case LUA_TFUNCTION: return clvalue(o);
|
|
case LUA_TUSERDATA:
|
|
case LUA_TUSERDATA:
|
|
case LUA_TLIGHTUSERDATA:
|
|
case LUA_TLIGHTUSERDATA:
|
|
- return lua_touserdata(L, index);
|
|
|
|
|
|
+ return lua_touserdata(L, idx);
|
|
default: return NULL;
|
|
default: return NULL;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -475,29 +475,29 @@ LUA_API void lua_pushlightuserdata (lua_State *L, void *p) {
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_gettable (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API void lua_gettable (lua_State *L, int idx) {
|
|
StkId t;
|
|
StkId t;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
- t = luaA_index(L, index);
|
|
|
|
|
|
+ t = luaA_index(L, idx);
|
|
setobj2s(L->top - 1, luaV_gettable(L, t, L->top - 1, 0));
|
|
setobj2s(L->top - 1, luaV_gettable(L, t, L->top - 1, 0));
|
|
lua_unlock(L);
|
|
lua_unlock(L);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_rawget (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API void lua_rawget (lua_State *L, int idx) {
|
|
StkId t;
|
|
StkId t;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
- t = luaA_index(L, index);
|
|
|
|
|
|
+ t = luaA_index(L, idx);
|
|
api_check(L, ttistable(t));
|
|
api_check(L, ttistable(t));
|
|
setobj2s(L->top - 1, luaH_get(hvalue(t), L->top - 1));
|
|
setobj2s(L->top - 1, luaH_get(hvalue(t), L->top - 1));
|
|
lua_unlock(L);
|
|
lua_unlock(L);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_rawgeti (lua_State *L, int index, int n) {
|
|
|
|
|
|
+LUA_API void lua_rawgeti (lua_State *L, int idx, int n) {
|
|
StkId o;
|
|
StkId o;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
- o = luaA_index(L, index);
|
|
|
|
|
|
+ o = luaA_index(L, idx);
|
|
api_check(L, ttistable(o));
|
|
api_check(L, ttistable(o));
|
|
setobj2s(L->top, luaH_getnum(hvalue(o), n));
|
|
setobj2s(L->top, luaH_getnum(hvalue(o), n));
|
|
api_incr_top(L);
|
|
api_incr_top(L);
|
|
@@ -542,10 +542,10 @@ LUA_API int lua_getmetatable (lua_State *L, int objindex) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_getfenv (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API void lua_getfenv (lua_State *L, int idx) {
|
|
StkId o;
|
|
StkId o;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
- o = luaA_index(L, index);
|
|
|
|
|
|
+ o = luaA_index(L, idx);
|
|
setobj2s(L->top, isLfunction(o) ? &clvalue(o)->l.g : gt(L));
|
|
setobj2s(L->top, isLfunction(o) ? &clvalue(o)->l.g : gt(L));
|
|
api_incr_top(L);
|
|
api_incr_top(L);
|
|
lua_unlock(L);
|
|
lua_unlock(L);
|
|
@@ -557,22 +557,22 @@ LUA_API void lua_getfenv (lua_State *L, int index) {
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_settable (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API void lua_settable (lua_State *L, int idx) {
|
|
StkId t;
|
|
StkId t;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
api_checknelems(L, 2);
|
|
api_checknelems(L, 2);
|
|
- t = luaA_index(L, index);
|
|
|
|
|
|
+ t = luaA_index(L, idx);
|
|
luaV_settable(L, t, L->top - 2, L->top - 1);
|
|
luaV_settable(L, t, L->top - 2, L->top - 1);
|
|
L->top -= 2; /* pop index and value */
|
|
L->top -= 2; /* pop index and value */
|
|
lua_unlock(L);
|
|
lua_unlock(L);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_rawset (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API void lua_rawset (lua_State *L, int idx) {
|
|
StkId t;
|
|
StkId t;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
api_checknelems(L, 2);
|
|
api_checknelems(L, 2);
|
|
- t = luaA_index(L, index);
|
|
|
|
|
|
+ t = luaA_index(L, idx);
|
|
api_check(L, ttistable(t));
|
|
api_check(L, ttistable(t));
|
|
setobj2t(luaH_set(L, hvalue(t), L->top-2), L->top-1); /* write barrier */
|
|
setobj2t(luaH_set(L, hvalue(t), L->top-2), L->top-1); /* write barrier */
|
|
L->top -= 2;
|
|
L->top -= 2;
|
|
@@ -580,11 +580,11 @@ LUA_API void lua_rawset (lua_State *L, int index) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API void lua_rawseti (lua_State *L, int index, int n) {
|
|
|
|
|
|
+LUA_API void lua_rawseti (lua_State *L, int idx, int n) {
|
|
StkId o;
|
|
StkId o;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
api_checknelems(L, 1);
|
|
api_checknelems(L, 1);
|
|
- o = luaA_index(L, index);
|
|
|
|
|
|
+ o = luaA_index(L, idx);
|
|
api_check(L, ttistable(o));
|
|
api_check(L, ttistable(o));
|
|
setobj2t(luaH_setnum(L, hvalue(o), n), L->top-1); /* write barrier */
|
|
setobj2t(luaH_setnum(L, hvalue(o), n), L->top-1); /* write barrier */
|
|
L->top--;
|
|
L->top--;
|
|
@@ -620,12 +620,12 @@ LUA_API int lua_setmetatable (lua_State *L, int objindex) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API int lua_setfenv (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API int lua_setfenv (lua_State *L, int idx) {
|
|
StkId o;
|
|
StkId o;
|
|
int res = 0;
|
|
int res = 0;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
api_checknelems(L, 1);
|
|
api_checknelems(L, 1);
|
|
- o = luaA_index(L, index);
|
|
|
|
|
|
+ o = luaA_index(L, idx);
|
|
L->top--;
|
|
L->top--;
|
|
api_check(L, ttistable(L->top));
|
|
api_check(L, ttistable(L->top));
|
|
if (isLfunction(o)) {
|
|
if (isLfunction(o)) {
|
|
@@ -803,11 +803,11 @@ LUA_API int lua_error (lua_State *L) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-LUA_API int lua_next (lua_State *L, int index) {
|
|
|
|
|
|
+LUA_API int lua_next (lua_State *L, int idx) {
|
|
StkId t;
|
|
StkId t;
|
|
int more;
|
|
int more;
|
|
lua_lock(L);
|
|
lua_lock(L);
|
|
- t = luaA_index(L, index);
|
|
|
|
|
|
+ t = luaA_index(L, idx);
|
|
api_check(L, ttistable(t));
|
|
api_check(L, ttistable(t));
|
|
more = luaH_next(L, hvalue(t), L->top - 1);
|
|
more = luaH_next(L, hvalue(t), L->top - 1);
|
|
if (more) {
|
|
if (more) {
|