Compare commits

...

2 Commits

Author SHA1 Message Date
Robin Hüskes 774259923f Improve memory usage 2022-12-16 22:10:47 +01:00
Robin Hüskes 9eed60acf2 Update Libs 2022-12-15 20:41:11 +01:00
2 changed files with 8 additions and 11 deletions

View File

@ -1,5 +1,5 @@
--[[ $Id: CallbackHandler-1.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ ]] --[[ $Id: CallbackHandler-1.0.lua 26 2022-12-12 15:09:39Z nevcairiel $ ]]
local MAJOR, MINOR = "CallbackHandler-1.0", 7 local MAJOR, MINOR = "CallbackHandler-1.0", 8
local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR) local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR)
if not CallbackHandler then return end -- No upgrade needed if not CallbackHandler then return end -- No upgrade needed
@ -7,21 +7,16 @@ if not CallbackHandler then return end -- No upgrade needed
local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end} local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end}
-- Lua APIs -- Lua APIs
local error = error local securecallfunction, error = securecallfunction, error
local setmetatable, rawget = setmetatable, rawget local setmetatable, rawget = setmetatable, rawget
local next, select, pairs, type, tostring = next, select, pairs, type, tostring local next, select, pairs, type, tostring = next, select, pairs, type, tostring
local xpcall = xpcall
local function errorhandler(err)
return geterrorhandler()(err)
end
local function Dispatch(handlers, ...) local function Dispatch(handlers, ...)
local index, method = next(handlers) local index, method = next(handlers)
if not method then return end if not method then return end
repeat repeat
xpcall(method, errorhandler, ...) securecallfunction(method, ...)
index, method = next(handlers, index) index, method = next(handlers, index)
until not method until not method
end end

View File

@ -60,6 +60,7 @@ local function checkRoster(self, dummy, event, ...)
if(res['connected'] and res['name']) then if(res['connected'] and res['name']) then
newroster[res['name']] = true newroster[res['name']] = true
end end
res = nil
end end
end end
friendroster = newroster friendroster = newroster
@ -80,7 +81,9 @@ local function checkRoster(self, dummy, event, ...)
if(aci['isOnline'] and aci['characterName'] and not dontShow) then if(aci['isOnline'] and aci['characterName'] and not dontShow) then
newroster[aci['characterName']] = true newroster[aci['characterName']] = true
end end
aci = nil
end end
res = nil
end end
end end
bnetroster = newroster bnetroster = newroster
@ -98,7 +101,6 @@ local function OnUpdate()
GuildRoster() GuildRoster()
checkRoster(nil, nil, "FRIENDLIST_UPDATE") checkRoster(nil, nil, "FRIENDLIST_UPDATE")
checkRoster(nil, nil, "BN_FRIEND_INFO_CHANGED") checkRoster(nil, nil, "BN_FRIEND_INFO_CHANGED")
C_Timer.After(updateDelay, OnUpdate)
end end
child['specs'] = { child['specs'] = {
['name'] = childName, ['name'] = childName,
@ -115,6 +117,6 @@ child['specs'] = {
function events:PLAYER_ENTERING_WORLD(event) function events:PLAYER_ENTERING_WORLD(event)
child:UnregisterEvent('PLAYER_ENTERING_WORLD') child:UnregisterEvent('PLAYER_ENTERING_WORLD')
child:RegisterEvent({"GUILD_ROSTER_UPDATE","FRIENDLIST_UPDATE","CHAT_MSG_CHANNEL_JOIN","CHAT_MSG_CHANNEL_LEAVE","PLAYER_FLAGS_CHANGED","UNIT_FLAGS","BN_FRIEND_INFO_CHANGED"}, checkRoster) child:RegisterEvent({"GUILD_ROSTER_UPDATE","FRIENDLIST_UPDATE","CHAT_MSG_CHANNEL_JOIN","CHAT_MSG_CHANNEL_LEAVE","PLAYER_FLAGS_CHANGED","UNIT_FLAGS","BN_FRIEND_INFO_CHANGED"}, checkRoster)
OnUpdate() C_Timer.NewTimer (updateDelay, OnUpdate)
end end
child:NewAddOn(...) child:NewAddOn(...)