| 71 | } |
| 72 | |
| 73 | static int destroy_instance(lua_State* L) |
| 74 | { |
| 75 | object_rep* instance = static_cast<object_rep*>(lua_touserdata(L, 1)); |
| 76 | |
| 77 | lua_pushliteral(L, "__finalize"); |
| 78 | lua_gettable(L, 1); |
| 79 | |
| 80 | if (lua_isnil(L, -1)) |
| 81 | { |
| 82 | lua_pop(L, 1); |
| 83 | } |
| 84 | else |
| 85 | { |
| 86 | lua_pushvalue(L, 1); |
| 87 | lua_call(L, 1, 0); |
| 88 | } |
| 89 | |
| 90 | instance->release_dependency_refs(L); |
| 91 | instance->~object_rep(); |
| 92 | |
| 93 | lua_pushnil(L); |
| 94 | lua_setmetatable(L, 1); |
| 95 | return 0; |
| 96 | } |
| 97 | |
| 98 | namespace |
| 99 | { |
nothing calls this directly
no test coverage detected