| 2208 | |
| 2209 | |
| 2210 | LUA_API size_t lua_objlen (lua_State *L, int idx) { |
| 2211 | StkId o = index2adr(L, idx); |
| 2212 | switch (ttype(o)) { |
| 2213 | case LUA_TSTRING: return tsvalue(o)->len; |
| 2214 | case LUA_TUSERDATA: return uvalue(o)->len; |
| 2215 | case LUA_TTABLE: return luaH_getn(hvalue(o)); |
| 2216 | case LUA_TNUMBER: { |
| 2217 | size_t l; |
| 2218 | lua_lock(L); /* `luaV_tostring' may create a new string */ |
| 2219 | l = (luaV_tostring(L, o) ? tsvalue(o)->len : 0); |
| 2220 | lua_unlock(L); |
| 2221 | return l; |
| 2222 | } |
| 2223 | default: return 0; |
| 2224 | } |
| 2225 | } |
| 2226 | |
| 2227 | |
| 2228 | LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) { |
no test coverage detected