@@ -16,6 +16,7 @@ local object = CreateFrame('Frame')
16
16
local pooler = { frame = object }
17
17
oUF .Pooler = Profiler (pooler )
18
18
19
+ object .tracked = {}
19
20
object .events = {}
20
21
object .times = {}
21
22
@@ -73,8 +74,13 @@ pooler.execute = function(event, pool, instant, arg1, ...)
73
74
end
74
75
75
76
pooler .update = function ()
76
- for event , pool in pairs (object .events ) do
77
- pooler .execute (event , pool )
77
+ for event in pairs (object .tracked ) do
78
+ local pool = object .events [event ]
79
+ if pool then
80
+ pooler .execute (event , pool )
81
+ end
82
+
83
+ object .tracked [event ] = nil
78
84
end
79
85
end
80
86
@@ -90,13 +96,17 @@ pooler.tracker = function(frame, event, arg1, ...)
90
96
elseif arg1 ~= nil then -- require arg1, no unitless
91
97
local pooled = pool [frame ]
92
98
if pooled then
99
+ if not object .tracked [event ] then
100
+ object .tracked [event ] = true
101
+ end
102
+
93
103
local eventData = pooled .data [event ]
94
104
if not eventData then
95
105
eventData = {}
96
106
pooled .data [event ] = eventData
97
107
end
98
108
99
- tinsert (eventData , {arg1 , ... })
109
+ tinsert (eventData , { arg1 , ... })
100
110
end
101
111
end
102
112
@@ -126,7 +136,7 @@ function oUF:RegisterEvent(frame, event, func)
126
136
127
137
local framePool = eventPool [frame ]
128
138
if not framePool then
129
- framePool = {functions = {}, data = {}}
139
+ framePool = { functions = {}, data = {} }
130
140
eventPool [frame ] = framePool
131
141
end
132
142
0 commit comments