mirror of
https://github.com/luau-lang/luau.git
synced 2025-05-04 10:33:46 +01:00
Clean up luaU_freeudata a bit
This commit is contained in:
parent
949581db23
commit
4c6012882a
1 changed files with 5 additions and 11 deletions
|
@ -22,21 +22,15 @@ Udata* luaU_newudata(lua_State* L, size_t s, int tag)
|
|||
|
||||
void luaU_freeudata(lua_State* L, Udata* u, lua_Page* page)
|
||||
{
|
||||
void (*dtor)(lua_State*, void*) = nullptr;
|
||||
|
||||
if (u->tag < LUA_UTAG_LIMIT)
|
||||
{
|
||||
void (*dtor)(lua_State*, void*) = nullptr;
|
||||
dtor = L->global->udatagc[u->tag];
|
||||
if (dtor)
|
||||
dtor(L, u->data);
|
||||
}
|
||||
else if (u->tag == UTAG_IDTOR)
|
||||
{
|
||||
void (*dtor)(lua_State*, void*) = nullptr;
|
||||
memcpy(&dtor, &u->data + u->len - sizeof(dtor), sizeof(dtor));
|
||||
if (dtor)
|
||||
dtor(L, u->data);
|
||||
}
|
||||
|
||||
|
||||
if (dtor)
|
||||
dtor(L, u->data);
|
||||
|
||||
luaM_freegco(L, u, sizeudata(u->len), u->memcat, page);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue