From def947bec1fd07301c0b45d6e5d48a455f72a78c Mon Sep 17 00:00:00 2001 From: Xurkon Date: Fri, 24 Apr 2026 04:36:25 -0500 Subject: [PATCH] Fix LSM30:Fetch guards - also check LSM30.Fetch exists before calling Previous guard only checked LSM30 ~= nil; if Fetch method is absent on the stub object the call still crashes. Now uses full 3-part check: (LSM30 and LSM30.Fetch and LSM30:Fetch(...)) or fallback Matches the pattern already used in QuestieArrow.lua. --- Modules/Tracker/QuestieTracker.lua | 2 +- Modules/Tracker/TrackerHeaderFrame.lua | 2 +- Modules/Tracker/TrackerLinePool.lua | 8 ++++---- Modules/Tracker/TrackerQuestTimers.lua | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Modules/Tracker/QuestieTracker.lua b/Modules/Tracker/QuestieTracker.lua index 03c879b..0fda801 100644 --- a/Modules/Tracker/QuestieTracker.lua +++ b/Modules/Tracker/QuestieTracker.lua @@ -1275,7 +1275,7 @@ function QuestieTracker:Update() line.label:SetPoint("TOPLEFT", line, "TOPLEFT", lineWidthQBC, 0) -- Set Timer font - line.label:SetFont(LSM30 and LSM30:Fetch("font", Questie.db.profile.trackerFontObjective) or Questie.db.profile.trackerFontObjective, + line.label:SetFont((LSM30 and LSM30.Fetch and LSM30:Fetch("font", Questie.db.profile.trackerFontObjective)) or Questie.db.profile.trackerFontObjective, Questie.db.profile.trackerFontSizeObjective, Questie.db.profile.trackerFontOutline) -- Set Timer Title based on states diff --git a/Modules/Tracker/TrackerHeaderFrame.lua b/Modules/Tracker/TrackerHeaderFrame.lua index b564951..4301d0d 100644 --- a/Modules/Tracker/TrackerHeaderFrame.lua +++ b/Modules/Tracker/TrackerHeaderFrame.lua @@ -209,7 +209,7 @@ function TrackerHeaderFrame:Update() headerFrame.questieIcon:SetPoint("TOPLEFT", headerFrame, "TOPLEFT", 6, 0) headerFrame.questieIcon:Show() - headerFrame.trackedQuests.label:SetFont(LSM30 and LSM30:Fetch("font", Questie.db.profile.trackerFontHeader) or Questie.db.profile.trackerFontHeader, trackerFontSizeHeader, Questie.db.profile.trackerFontOutline) + headerFrame.trackedQuests.label:SetFont((LSM30 and LSM30.Fetch and LSM30:Fetch("font", Questie.db.profile.trackerFontHeader)) or Questie.db.profile.trackerFontHeader, trackerFontSizeHeader, Questie.db.profile.trackerFontOutline) local maxQuestAmount = "/" .. C_QuestLog.GetMaxNumQuestsCanAccept() local _, activeQuests = GetNumQuestLogEntries() diff --git a/Modules/Tracker/TrackerLinePool.lua b/Modules/Tracker/TrackerLinePool.lua index a8e67da..4deb0d9 100644 --- a/Modules/Tracker/TrackerLinePool.lua +++ b/Modules/Tracker/TrackerLinePool.lua @@ -562,7 +562,7 @@ function TrackerLinePool.Initialize(questFrame) -- Charges Updates self.count:Hide() - self.count:SetFont(LSM30 and LSM30:Fetch("font", Questie.db.profile.trackerFontQuest) or Questie.db.profile.trackerFontQuest, Questie.db.profile.trackerFontSizeQuest, "OUTLINE") + self.count:SetFont((LSM30 and LSM30.Fetch and LSM30:Fetch("font", Questie.db.profile.trackerFontQuest)) or Questie.db.profile.trackerFontQuest, Questie.db.profile.trackerFontSizeQuest, "OUTLINE") if self.charges > 1 then self.count:SetText(self.charges) self.count:Show() @@ -1089,16 +1089,16 @@ TrackerLinePool.SetMode = function(self, mode) self.mode = mode if mode == "zone" then local trackerFontSizeZone = Questie.db.profile.trackerFontSizeZone - self.label:SetFont(LSM30 and LSM30:Fetch("font", Questie.db.profile.trackerFontZone) or Questie.db.profile.trackerFontZone, trackerFontSizeZone, Questie.db.profile.trackerFontOutline) + self.label:SetFont((LSM30 and LSM30.Fetch and LSM30:Fetch("font", Questie.db.profile.trackerFontZone)) or Questie.db.profile.trackerFontZone, trackerFontSizeZone, Questie.db.profile.trackerFontOutline) self.label:SetHeight(trackerFontSizeZone) elseif mode == "quest" or mode == "achieve" then local trackerFontSizeQuest = Questie.db.profile.trackerFontSizeQuest - self.label:SetFont(LSM30 and LSM30:Fetch("font", Questie.db.profile.trackerFontQuest) or Questie.db.profile.trackerFontQuest, trackerFontSizeQuest, Questie.db.profile.trackerFontOutline) + self.label:SetFont((LSM30 and LSM30.Fetch and LSM30:Fetch("font", Questie.db.profile.trackerFontQuest)) or Questie.db.profile.trackerFontQuest, trackerFontSizeQuest, Questie.db.profile.trackerFontOutline) self.label:SetHeight(trackerFontSizeQuest) self.button = nil elseif mode == "objective" then local trackerFontSizeObjective = Questie.db.profile.trackerFontSizeObjective - self.label:SetFont(LSM30 and LSM30:Fetch("font", Questie.db.profile.trackerFontObjective) or Questie.db.profile.trackerFontObjective, trackerFontSizeObjective, Questie.db.profile.trackerFontOutline) + self.label:SetFont((LSM30 and LSM30.Fetch and LSM30:Fetch("font", Questie.db.profile.trackerFontObjective)) or Questie.db.profile.trackerFontObjective, trackerFontSizeObjective, Questie.db.profile.trackerFontOutline) self.label:SetHeight(trackerFontSizeObjective) end end diff --git a/Modules/Tracker/TrackerQuestTimers.lua b/Modules/Tracker/TrackerQuestTimers.lua index f3b4ac6..1dd6804 100644 --- a/Modules/Tracker/TrackerQuestTimers.lua +++ b/Modules/Tracker/TrackerQuestTimers.lua @@ -163,7 +163,7 @@ function TrackerQuestTimers:UpdateTimerFrame() local timeRemainingString, timeRemaining = TrackerQuestTimers:GetRemainingTimeByQuestId(timer.questId) if timeRemainingString ~= nil then Questie:Debug(Questie.DEBUG_SPAM, "[TrackerQuestTimers:UpdateTimerFrame] - ", timeRemainingString) - timer.frame.label:SetFont(LSM30 and LSM30:Fetch("font", Questie.db.profile.trackerFontObjective) or Questie.db.profile.trackerFontObjective, Questie.db.profile.trackerFontSizeObjective, Questie.db.profile.trackerFontOutline) + timer.frame.label:SetFont((LSM30 and LSM30.Fetch and LSM30:Fetch("font", Questie.db.profile.trackerFontObjective)) or Questie.db.profile.trackerFontObjective, Questie.db.profile.trackerFontSizeObjective, Questie.db.profile.trackerFontOutline) timer.frame.label:SetText(Questie:Colorize(timeRemainingString, "blue")) timer.frame:SetWidth(timer.frame.label:GetWidth() + ((34) - (18 - Questie.db.profile.trackerFontSizeQuest)) + Questie.db.profile.trackerFontSizeQuest) else