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