Какой бы ни была причина, по которой вам, возможно, придется удалять метатаблицу, это возможно. luaL_newmetatable(L, "foo")
создает таблицу, которая хранится в реестре Lua с ключом "foo"
.
Чтобы удалить таблицу, просто установите поле "foo"
в реестре на nil
. Код в С:
lua_pushnil(L);
lua_setfield(L, LUA_REGISTRYINDEX, "foo");
Эквивалентный код в Lua:
debug.getregistry()["foo"] = nil