Lua.cpp: Don't call unregister callbacks if nothing get unreg'd

This commit is contained in:
Ilari Liusvaara 2014-05-13 16:31:07 +03:00
parent 04575a789b
commit 1cd3e3d004

View file

@ -615,9 +615,8 @@ void function_group::do_unregister(const std::string& name, function& fun)
{ {
threads::arlock h(get_lua_lock()); threads::arlock h(get_lua_lock());
auto state = fgroup_internal_t::get_soft(this); auto state = fgroup_internal_t::get_soft(this);
if(!state) return; if(!state || !state->functions.count(name) || state->functions[name] != &fun) return;
if(state && state->functions.count(name) && state->functions[name] == &fun) state->functions.erase(name);
state->functions.erase(name);
for(auto i : state->callbacks) for(auto i : state->callbacks)
i.second(name, NULL); i.second(name, NULL);
} }