diff --git a/src/lauxlib.h b/src/lauxlib.h index 420b8912..46ac5638 100644 --- a/src/lauxlib.h +++ b/src/lauxlib.h @@ -90,7 +90,7 @@ LUALIB_API void (luaL_pushmodule) (lua_State *L, const char *modname, int sizehint); LUALIB_API void *(luaL_testudata) (lua_State *L, int ud, const char *tname); LUALIB_API void (luaL_setmetatable) (lua_State *L, const char *tname); -LUALIB_API int (luaL_len) (lua_State *L, int idx); +LUALIB_API lua_Integer (luaL_len) (lua_State *L, int idx); /* diff --git a/src/lj_api.c b/src/lj_api.c index 641658d2..71888f21 100644 --- a/src/lj_api.c +++ b/src/lj_api.c @@ -1221,12 +1221,12 @@ LUALIB_API int luaL_callmeta(lua_State *L, int idx, const char *field) return 0; } -LUALIB_API int luaL_len(lua_State *L, int idx) +LUALIB_API lua_Integer luaL_len(lua_State *L, int idx) { - int l; + lua_Integer l; int isnum; lua_len(L, idx); - l = (int)lua_tointegerx(L, -1, &isnum); + l = lua_tointegerx(L, -1, &isnum); if (!isnum) luaL_error(L, "object length is not a number"); lua_pop(L, 1); /* remove object */ diff --git a/src/luajit.c b/src/luajit.c index 4641b0b6..79c629e8 100644 --- a/src/luajit.c +++ b/src/luajit.c @@ -274,7 +274,7 @@ static int pushargs(lua_State *L) lua_getglobal(L, "arg"); if (!lua_istable(L, -1)) luaL_error(L, "'arg' is not a table"); - n = luaL_len(L, -1); + n = (int)luaL_len(L, -1); luaL_checkstack(L, n + 3, "too many arguments to script"); for (i = 1; i <= n; i++) lua_rawgeti(L, -i, i);