eventable: Fix unhooking of handlers

This commit is contained in:
Adrian Perez de Castro
2016-07-03 22:55:28 +03:00
parent f295145331
commit 7952f15053
2 changed files with 43 additions and 3 deletions

View File

@@ -39,19 +39,23 @@ end)()
local function do_hook(event_map, event, handler)
log("hook:", event, handler)
if not handler then
event_map[event] = nil
else
if handler then
if not event_map[event] then
event_map[event] = {}
end
local handlers = event_map[event]
handlers[#handlers + 1] = handler
else
return event_map[event]
end
end
local function do_unhook(event_map, event, handler)
log("unhook:", event, handler)
if handler == nil then
event_map[event] = nil
return
end
local old_handlers = event_map[event]
if old_handlers then
local handlers = {}