diff --git a/VM/include/lua.h b/VM/include/lua.h index 783e60a5..32d31bdb 100644 --- a/VM/include/lua.h +++ b/VM/include/lua.h @@ -314,6 +314,7 @@ LUA_API double lua_clock(); LUA_API void lua_setuserdatatag(lua_State* L, int idx, int tag); LUA_API void lua_setuserdatadtor(lua_State* L, int tag, void (*dtor)(lua_State*, void*)); +LUA_API void (*lua_getuserdatadtor(lua_State* L, int tag))(lua_State*, void*); LUA_API void lua_clonefunction(lua_State* L, int idx); diff --git a/VM/src/lapi.cpp b/VM/src/lapi.cpp index 1528aa39..fbf12e33 100644 --- a/VM/src/lapi.cpp +++ b/VM/src/lapi.cpp @@ -1384,6 +1384,12 @@ void lua_setuserdatadtor(lua_State* L, int tag, void (*dtor)(lua_State*, void*)) L->global->udatagc[tag] = dtor; } +void (*lua_getuserdatadtor(lua_State* L, int tag))(lua_State*, void*) +{ + api_check(L, unsigned(tag) < LUA_UTAG_LIMIT); + return L->global->udatagc[tag]; +} + void lua_clonefunction(lua_State* L, int idx) { luaC_checkGC(L);