coa: sanitize debuff icon path before SetTexture
Ascension has been shipping auras whose UnitAura()-returned icon path is nil or unresolvable on the local client. Decursive's LiveList fed it straight into Texture:SetTexture(), and on the 3.3.5 engine that crashes the renderer downstream — #132 ACCESS_VIOLATION near Ascension.exe text + null+offset (texture-loader struct left half-initialized). Confirmed across multiple recent DLL hashes (0baf62b, 6a3088c, 7bba9c8, 502ca3c), recurring fault @ 0x00749EEB. Fix: when Debuff.Texture isn't a non-empty string, fall back to INV_Misc_QuestionMark and log the offender once (via AddDebugText so it lands in Logs/Trace.txt) for future identification of the bad aura. Bumped toc to Asc-1.1.3-coa.
This commit is contained in:
@@ -272,8 +272,23 @@ function LiveList.prototype:SetDebuff(UnitID, Debuff, IsCharmed) -- {{{
|
||||
|
||||
-- Set the graphical elements to the right values
|
||||
-- Icon
|
||||
-- CoA: Ascension sometimes ships auras whose icon path is missing/invalid on
|
||||
-- the local client; passing those into SetTexture has crashed the engine
|
||||
-- (#132 ACCESS_VIOLATION, fault inside Ascension.exe texture loader).
|
||||
-- Fall back to the question-mark icon and record the offender once so it
|
||||
-- shows up in Logs/Trace.txt.
|
||||
if self.PrevDebuffTexture ~= Debuff.Texture then
|
||||
self.IconTexture:SetTexture(Debuff.Texture);
|
||||
local tex = Debuff.Texture;
|
||||
if type(tex) ~= "string" or tex == "" then
|
||||
if not D.coa_LoggedBadTextures then D.coa_LoggedBadTextures = {}; end
|
||||
local key = tostring(tex);
|
||||
if not D.coa_LoggedBadTextures[key] then
|
||||
D.coa_LoggedBadTextures[key] = true;
|
||||
D:AddDebugText("CoA: bad debuff icon, falling back. Name=", Debuff.Name, "Type=", Debuff.TypeName, "raw=", tex);
|
||||
end
|
||||
tex = "Interface\\Icons\\INV_Misc_QuestionMark";
|
||||
end
|
||||
self.IconTexture:SetTexture(tex);
|
||||
self.PrevDebuffTexture = Debuff.Texture;
|
||||
end
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
## SavedVariables: DecursiveDB
|
||||
|
||||
## Version: Asc-1.1.2-coa (orig 2.5.1-6-gd3885c5)
|
||||
## Version: Asc-1.1.3-coa (orig 2.5.1-6-gd3885c5)
|
||||
## Author: Archarodim
|
||||
|
||||
## X-License: All Rights Reserved
|
||||
|
||||
Reference in New Issue
Block a user