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
+15 -15
View File
@@ -85,23 +85,23 @@ function QuestieNameplate:UpdateNameplate()
local unitName, _ = UnitName(token)
local _, _, _, _, _, npcId, _ = strsplit("-", guid)
if (not unitName) or (not npcId) then
return
end
-- Skip this entry (not the whole loop) if data is missing, otherwise one
-- unavailable unit would abort updates for every remaining nameplate.
if unitName and npcId then
local icon = _QuestieNameplate.GetValidIcon(QuestieTooltips.lookupByKey["m_" .. npcId])
local icon = _QuestieNameplate.GetValidIcon(QuestieTooltips.lookupByKey["m_" .. npcId])
if icon then
local frame = _QuestieNameplate.GetFrame(guid)
-- check if the texture needs to be changed
if frame.lastIcon ~= icon then
frame.lastIcon = icon
frame.Icon:SetTexture(icon)
if icon then
local frame = _QuestieNameplate.GetFrame(guid)
-- check if the texture needs to be changed
if frame.lastIcon ~= icon then
frame.lastIcon = icon
frame.Icon:SetTexture(icon)
end
else
-- tooltip removed but we still have the frame active, remove it
activeGUIDs[guid] = nil
_QuestieNameplate.RemoveFrame(guid)
end
else
-- tooltip removed but we still have the frame active, remove it
activeGUIDs[guid] = nil
_QuestieNameplate.RemoveFrame(guid)
end
end
end