| 366 | |
| 367 | |
| 368 | LUA_API size_t lua_objlen (lua_State *L, int idx) { |
| 369 | StkId o = index2adr(L, idx); |
| 370 | switch (ttype(o)) { |
| 371 | case LUA_TSTRING: return tsvalue(o)->len; |
| 372 | case LUA_TUSERDATA: return uvalue(o)->len; |
| 373 | case LUA_TTABLE: return luaH_getn(hvalue(o)); |
| 374 | case LUA_TNUMBER: { |
| 375 | size_t l; |
| 376 | lua_lock(L); /* `luaV_tostring' may create a new string */ |
| 377 | l = (luaV_tostring(L, o) ? tsvalue(o)->len : 0); |
| 378 | lua_unlock(L); |
| 379 | return l; |
| 380 | } |
| 381 | default: return 0; |
| 382 | } |
| 383 | } |
| 384 | |
| 385 | |
| 386 | LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) { |
no test coverage detected