From 4c6012882a84d9e3edd720c7d7ff6a40ac27c99f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petri=20H=C3=A4kkinen?= Date: Sat, 28 May 2022 12:06:50 +0300 Subject: [PATCH] Clean up luaU_freeudata a bit --- VM/src/ludata.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/VM/src/ludata.cpp b/VM/src/ludata.cpp index 8e8e48de..d4a54e37 100644 --- a/VM/src/ludata.cpp +++ b/VM/src/ludata.cpp @@ -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); }