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:
Xurkon
2026-06-12 06:48:53 -05:00
parent 1f8fa20e00
commit 568cd44af8
13 changed files with 57 additions and 47 deletions
+12 -1
View File
@@ -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())