From 56eca787dd3543b35345d82c78a027260b11a676 Mon Sep 17 00:00:00 2001 From: Janos Kovacs Date: Thu, 20 Dec 2012 22:28:15 +0200 Subject: [PATCH] lua-utils: fix in object destructor --- src/core/lua-utils/object.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/core/lua-utils/object.c b/src/core/lua-utils/object.c index b80630e..92fa1d2 100644 --- a/src/core/lua-utils/object.c +++ b/src/core/lua-utils/object.c @@ -179,9 +179,16 @@ void mrp_lua_destroy_object(lua_State *L, const char *name, void *data) userdata_t *userdata = (userdata_t *)(data - offset); mrp_lua_classdef_t *def; - if (data && userdata == userdata->self && userdata->dead) { + if (data && userdata == userdata->self && !userdata->dead) { + userdata->dead = true; def = userdata->def; + lua_rawgeti(L, LUA_REGISTRYINDEX, userdata->luatbl); + lua_pushstring(L, "userdata"); + lua_pushnil(L); + lua_rawset(L, -3); + lua_pop(L, -1); + luaL_unref(L, LUA_REGISTRYINDEX, userdata->luatbl); mrp_lua_get_class_table(L, def); -- 2.7.4