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 luaU_freeudata(lua_State* L, Udata* u, lua_Page* page)
|
||||||
{
|
{
|
||||||
|
void (*dtor)(lua_State*, void*) = nullptr;
|
||||||
|
|
||||||
if (u->tag < LUA_UTAG_LIMIT)
|
if (u->tag < LUA_UTAG_LIMIT)
|
||||||
{
|
|
||||||
void (*dtor)(lua_State*, void*) = nullptr;
|
|
||||||
dtor = L->global->udatagc[u->tag];
|
dtor = L->global->udatagc[u->tag];
|
||||||
if (dtor)
|
|
||||||
dtor(L, u->data);
|
|
||||||
}
|
|
||||||
else if (u->tag == UTAG_IDTOR)
|
else if (u->tag == UTAG_IDTOR)
|
||||||
{
|
|
||||||
void (*dtor)(lua_State*, void*) = nullptr;
|
|
||||||
memcpy(&dtor, &u->data + u->len - sizeof(dtor), sizeof(dtor));
|
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);
|
luaM_freegco(L, u, sizeudata(u->len), u->memcat, page);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue