MCPcopy Create free account
hub / github.com/EmmyLua/EmmyLuaDebugger / luaL_testudata

Function luaL_testudata

third-party/lua-5.5.0/src/lauxlib.c:336–348  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

334
335
336LUALIB_API void *luaL_testudata (lua_State *L, int ud, const char *tname) {
337 void *p = lua_touserdata(L, ud);
338 if (p != NULL) { /* value is a userdata? */
339 if (lua_getmetatable(L, ud)) { /* does it have a metatable? */
340 luaL_getmetatable(L, tname); /* get correct metatable */
341 if (!lua_rawequal(L, -1, -2)) /* not the same? */
342 p = NULL; /* value is a userdata with wrong metatable */
343 lua_pop(L, 2); /* remove both metatables */
344 return p;
345 }
346 }
347 return NULL; /* value is not a userdata with a metatable */
348}
349
350
351LUALIB_API void *luaL_checkudata (lua_State *L, int ud, const char *tname) {

Callers 2

luaL_checkudataFunction · 0.70
io_typeFunction · 0.70

Calls 3

lua_touserdataFunction · 0.70
lua_getmetatableFunction · 0.70
lua_rawequalFunction · 0.70

Tested by

no test coverage detected