util/events.lua

changeset 3500
a49ed9166820
parent 3499
91c55ae31ef3
child 3501
90c18e0355af
--- a/util/events.lua	Fri Sep 17 04:09:58 2010 +0500
+++ b/util/events.lua	Fri Sep 17 04:09:59 2010 +0500
@@ -18,14 +18,12 @@
 	local event_map = {};
 	local function _rebuild_index(event) -- TODO optimize index rebuilding
 		local _handlers = event_map[event];
-		local index = handlers[event];
-		if index then
-			for i=#index,1,-1 do index[i] = nil; end
-		else index = {}; handlers[event] = index; end
+		local index = {};
 		for handler in pairs(_handlers) do
 			t_insert(index, handler);
 		end
 		t_sort(index, function(a, b) return _handlers[a] > _handlers[b]; end);
+		handlers[event] = index;
 	end;
 	local function add_handler(event, handler, priority)
 		local map = event_map[event];

mercurial