| 381 | |
| 382 | |
| 383 | LUA_API size_t lua_objlen (lua_State *L, int idx) { |
| 384 | StkId o = index2adr(L, idx); |
| 385 | switch (ttype(o)) { |
| 386 | case LUA_TSTRING: return tsvalue(o)->len; |
| 387 | case LUA_TUSERDATA: return uvalue(o)->len; |
| 388 | case LUA_TTABLE: return luaH_getn(hvalue(o)); |
| 389 | case LUA_TNUMBER: { |
| 390 | size_t l; |
| 391 | lua_lock(L); /* `luaV_tostring' may create a new string */ |
| 392 | l = (luaV_tostring(L, o) ? tsvalue(o)->len : 0); |
| 393 | lua_unlock(L); |
| 394 | return l; |
| 395 | } |
| 396 | default: return 0; |
| 397 | } |
| 398 | } |
| 399 | |
| 400 | |
| 401 | LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) { |
no test coverage detected