mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-04-22 06:43:27 +00:00
backport lua_rawlen from 5.2
This commit is contained in:
parent
a119497bec
commit
316bfb1ab7
14
src/lj_api.c
14
src/lj_api.c
@ -591,6 +591,20 @@ LUA_API size_t lua_objlen(lua_State *L, int idx)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LUA_API size_t lua_rawlen(lua_State *L, int idx)
|
||||||
|
{
|
||||||
|
TValue *o = index2adr(L, idx);
|
||||||
|
if (tvisstr(o)) {
|
||||||
|
return strV(o)->len;
|
||||||
|
} else if (tvistab(o)) {
|
||||||
|
return (size_t)lj_tab_len(tabV(o));
|
||||||
|
} else if (tvisudata(o)) {
|
||||||
|
return udataV(o)->len;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LUA_API lua_CFunction lua_tocfunction(lua_State *L, int idx)
|
LUA_API lua_CFunction lua_tocfunction(lua_State *L, int idx)
|
||||||
{
|
{
|
||||||
cTValue *o = index2adr(L, idx);
|
cTValue *o = index2adr(L, idx);
|
||||||
|
@ -352,6 +352,7 @@ LUA_API const lua_Number *lua_version (lua_State *L);
|
|||||||
LUA_API void lua_copy (lua_State *L, int fromidx, int toidx);
|
LUA_API void lua_copy (lua_State *L, int fromidx, int toidx);
|
||||||
LUA_API lua_Number lua_tonumberx (lua_State *L, int idx, int *isnum);
|
LUA_API lua_Number lua_tonumberx (lua_State *L, int idx, int *isnum);
|
||||||
LUA_API lua_Integer lua_tointegerx (lua_State *L, int idx, int *isnum);
|
LUA_API lua_Integer lua_tointegerx (lua_State *L, int idx, int *isnum);
|
||||||
|
LUA_API size_t lua_rawlen (lua_State *L, int idx);
|
||||||
|
|
||||||
/* From Lua 5.3. */
|
/* From Lua 5.3. */
|
||||||
LUA_API int lua_isyieldable (lua_State *L);
|
LUA_API int lua_isyieldable (lua_State *L);
|
||||||
|
Loading…
Reference in New Issue
Block a user