diff --git a/init/skins.xml b/init/skins.xml
index 21685372..1e8d04d0 100644
--- a/init/skins.xml
+++ b/init/skins.xml
@@ -41,8 +41,6 @@
-
-
diff --git a/modules/cooldown.lua b/modules/cooldown.lua
index 62af1b5f..6c249e44 100644
--- a/modules/cooldown.lua
+++ b/modules/cooldown.lua
@@ -9,7 +9,7 @@ pfUI:RegisterModule("cooldown", function ()
local parent, parent_name
local function pfCooldownOnUpdate()
parent = this:GetParent()
- if not parent then this:Hide() end
+ if not parent then this:Hide() return end
parent_name = parent:GetName()
-- avoid to set cooldowns on invalid frames
diff --git a/modules/firstrun.lua b/modules/firstrun.lua
index 5e55c12d..af0c0965 100644
--- a/modules/firstrun.lua
+++ b/modules/firstrun.lua
@@ -263,7 +263,7 @@ pfUI:RegisterModule("firstrun", function ()
SkinCheckbox(f.checkbox, 18)
f.NextScript = function()
- if not pfUI.chat then message("Couldn't apply settings. Chat module is disabled.") end
+ if not pfUI.chat then message("Couldn't apply settings. Chat module is disabled.") return end
pfUI.chat.SetupRightChat(f.checkbox:GetChecked())
end
@@ -283,7 +283,7 @@ pfUI:RegisterModule("firstrun", function ()
SkinCheckbox(f.checkbox, 18)
f.NextScript = function()
- if not pfUI.chat then message("Couldn't apply settings. Chat module is disabled.") end
+ if not pfUI.chat then message("Couldn't apply settings. Chat module is disabled.") return end
if f.checkbox:GetChecked() then
pfUI.chat.SetupPositions()
end
@@ -305,7 +305,7 @@ pfUI:RegisterModule("firstrun", function ()
SkinCheckbox(f.checkbox, 18)
f.NextScript = function()
- if not pfUI.chat then message("Couldn't apply settings. Chat module is disabled.") end
+ if not pfUI.chat then message("Couldn't apply settings. Chat module is disabled.") return end
if f.checkbox:GetChecked() then
pfUI.chat.SetupChannels()
end
diff --git a/modules/map.lua b/modules/map.lua
index ed0d50ca..a9bed3b4 100644
--- a/modules/map.lua
+++ b/modules/map.lua
@@ -77,7 +77,13 @@ pfUI:RegisterModule("map", function ()
if point == "TOPLEFT" and relpoint == "TOPLEFT" then
offx = offx*oldscale/scale
offy = offy*oldscale/scale
- WorldMapFrame:SetPoint(point, rel, relpoint, offx, offy)
+ -- Anchor to the parent (3-arg SetPoint) rather than re-using the frame
+ -- GetPoint handed back. Re-anchoring to `rel` throws
+ -- " is dependent on this" as soon as anything else has anchored
+ -- itself to WorldMapFrame, which aborts the whole zoom handler. The
+ -- parent-relative form is also what LoadMovable/SaveMovable already
+ -- assume: SaveMovable stores only xpos/ypos, with no relative frame.
+ WorldMapFrame:SetPoint(point, offx, offy)
end
WorldMapFrame:SetScale(scale)
diff --git a/modules/roll.lua b/modules/roll.lua
index b3d6f886..9f1c81f8 100644
--- a/modules/roll.lua
+++ b/modules/roll.lua
@@ -43,6 +43,7 @@ pfUI:RegisterModule("roll", function ()
local _, _, itemLink = string.find(hyperlink, "(item:%d+:%d+:%d+:%d+)")
local itemName = C_Item.GetItemInfo(itemLink)
+ if not itemName then return end -- uncached item: avoid cache[nil] "table index is nil"
-- delete obsolete tables
if pfUI.roll.cache[itemName] and pfUI.roll.cache[itemName]["TIMESTAMP"] < GetTime() - 60 then
diff --git a/modules/unitxp.lua b/modules/unitxp.lua
index 2a787b4e..e130e6cf 100644
--- a/modules/unitxp.lua
+++ b/modules/unitxp.lua
@@ -169,6 +169,9 @@ pfUI:RegisterModule("unitxp", function ()
local throttle = 0
local scanner = CreateFrame("Frame")
+ -- expose the poller frame so PLAYER_LOGOUT can stop its UnitXP OnUpdate
+ -- (it lives on this separate frame, not on distanceIndicator) -> crash 132
+ pfUI.uf.target.distanceScanner = scanner
scanner:SetScript("OnUpdate", function()
throttle = throttle + arg1
if throttle < 0.05 then return end
@@ -236,6 +239,10 @@ pfUI:RegisterModule("unitxp", function ()
if pfUI.uf.target.distanceIndicator then
pfUI.uf.target.distanceIndicator:SetScript("OnUpdate", nil)
end
+ -- free-frame mode polls from its own scanner frame, not the indicator
+ if pfUI.uf.target.distanceScanner then
+ pfUI.uf.target.distanceScanner:SetScript("OnUpdate", nil)
+ end
end
return
end