fix: port Phase 1 perf/correctness audit fixes onto main
Brings the still-needed changes from questie-phase1perf that main lacked. Main already had the Lua 5.0 shims (QuestieLoader bit/strsplit, QuestieStream and QuestieSerializer math.mod sweep), so those are omitted. - QuestieNameplate: skip missing entries instead of return-aborting the whole activeGUIDs loop (one bad unit no longer stalls every nameplate update) - QuestieQuest.ClearAllNotes: skip DB-missing quests instead of aborting, so remaining quests' notes still get cleared - QuestieOptionsTracker: fix fadeTickerValue:Cancel -> fadeTicker:Cancel (3x); fadeTickerValue is a number, the ticker handle is fadeTicker - QuestieCommsData: nil-guard GetNPC/GetObject before reading .name - QuestieAnnounce: bound the alreadySentBandaid dedup cache (reset at 1000) - QuestieDB.IsComplete: hoist GetQuest into expectedQuest (one call, not two) - QuestieFramePool/QuestieFrame: drop the dead BaseOnUpdate ticker branch (BaseOnUpdate was never defined; behavior was always OnUpdate=nil) - QuestieLib: document unused questId arg on Ascension_IsScalingEnabled - Database/Corrections x3: strip stray UTF-8 BOM - Questie-X.toc: remove duplicate QuestieSlash.lua load line
This commit is contained in:
@@ -17,6 +17,7 @@ local LE_PARTY_CATEGORY_INSTANCE = QuestieCompat.LE_PARTY_CATEGORY_INSTANCE
|
||||
local itemCache = {} -- cache data since this happens on item looted it could happen a lot with auto loot
|
||||
|
||||
local alreadySentBandaid = {} -- TODO: rewrite the entire thing its a lost cause
|
||||
local alreadySentBandaidCount = 0 -- bound the dedup cache so it can't grow unbounded across a session
|
||||
|
||||
local _GetAnnounceMarker
|
||||
|
||||
@@ -120,7 +121,17 @@ function _QuestieAnnounce:AnnounceToChannel(message)
|
||||
return
|
||||
end
|
||||
|
||||
alreadySentBandaid[message] = true
|
||||
if not alreadySentBandaid[message] then
|
||||
alreadySentBandaid[message] = true
|
||||
alreadySentBandaidCount = alreadySentBandaidCount + 1
|
||||
-- Reset the dedup cache after enough distinct messages so it cannot grow
|
||||
-- unbounded over a long session. Reassigning ({}) instead of wipe() keeps
|
||||
-- this Lua 5.0 (Turtle) safe.
|
||||
if alreadySentBandaidCount >= 1000 then
|
||||
alreadySentBandaid = {}
|
||||
alreadySentBandaidCount = 0
|
||||
end
|
||||
end
|
||||
|
||||
if IsInRaid() or IsInGroup() then
|
||||
SendChatMessage(message, _QuestieAnnounce.GetChatMessageChannel())
|
||||
|
||||
Reference in New Issue
Block a user