Mercurial > prosody-hg
comparison util/events.lua @ 3897:ef645a5bb132
util.events: Remove an event's table when it has no more handlers.
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Sun, 19 Dec 2010 00:53:19 +0500 |
| parents | 90c18e0355af |
| children | 60b3b6d27364 |
comparison
equal
deleted
inserted
replaced
| 3896:d46287c02cb1 | 3897:ef645a5bb132 |
|---|---|
| 43 local function remove_handler(event, handler) | 43 local function remove_handler(event, handler) |
| 44 local map = event_map[event]; | 44 local map = event_map[event]; |
| 45 if map then | 45 if map then |
| 46 map[handler] = nil; | 46 map[handler] = nil; |
| 47 handlers[event] = nil; | 47 handlers[event] = nil; |
| 48 if next(map) == nil then | |
| 49 event_map[event] = nil; | |
| 50 end | |
| 48 end | 51 end |
| 49 end; | 52 end; |
| 50 local function add_handlers(handlers) | 53 local function add_handlers(handlers) |
| 51 for event, handler in pairs(handlers) do | 54 for event, handler in pairs(handlers) do |
| 52 add_handler(event, handler); | 55 add_handler(event, handler); |
