OmniCC

OmniCC

54M Downloads

7.2.5 taint error

jwensley2 opened this issue ยท 12 comments

commented

I've been getting this error since 7.2.5.

Message: Interface\AddOns\OmniCC\settings\groups.lua:31: Attempt to access forbidden object from code tainted by an AddOn
Time: 06/20/17 21:42:58
Count: 687
Stack: Interface\AddOns\OmniCC\settings\groups.lua:31: Attempt to access forbidden object from code tainted by an AddOnInterface\SharedXML\SharedBasicControls.lua:204: in function <Interface\SharedXML\SharedBasicControls.lua:203>
[C]: ?
[C]: in function `GetParent'
Interface\AddOns\OmniCC\settings\groups.lua:31: in function `FindGroup'
Interface\AddOns\OmniCC\settings\groups.lua:23: in function `GetGroup'
Interface\AddOns\OmniCC\settings\groups.lua:12: in function `GetGroupSettingsFor'
Interface\AddOns\OmniCC\core\cooldown.lua:95: in function `UpdateAlpha'
Interface\AddOns\OmniCC\core\cooldown.lua:12: in function <Interface\AddOns\OmniCC\core\cooldown.lua:11>
[C]: in function `SetCooldown'
Interface\FrameXML\Cooldown.lua:5: in function `CooldownFrame_Set'
...e\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua:522: in function `UpdateBuffs'
...e\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua:159: in function `OnUnitAuraUpdate'
...e\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua:53: in function <...e\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua:35>

Locals: errorMessage = "Interface\AddOns\OmniCC\settings\groups.lua:31: Attempt to access forbidden object from code tainted by an AddOn"
DisplayMessageInternal = <function> defined @Interface\SharedXML\SharedBasicControls.lua:187
MESSAGE_TYPE_ERROR = 0
commented

Hi, what's the latest on this, can it not be fixed? With all the ground targeted heals we have to deal with, friendly nameplates are essential for healers. Thanks.

commented

I'm getting this error too and it's giving me a lot of "you're experiencing too many errors" pop-ups. I can confirm this is happening when I have Friendly Nameplates enabled, specifically in instances. And I need to have them because I'm healing.

I'm also using Kui Nameplates but they don't work in instances anymore so I doubt that has anything to do with the error.

commented

OmniCC was OK with this fix.

But I can't prevent errors when I'm hovering over debuff icons on friendly nameplates. "GameTooltip_SetDefaultAnchor" function itself causes taint errors. I've tried exception handling but it was no use. What I could do was only disabling debuff icons on friendly nameplates when I enter PVE instances.

local z = CreateFrame("FRAME")
z:RegisterEvent("PLAYER_ENTERING_WORLD")
z:SetScript("OnEvent", function()
local _,type=IsInInstance()
if type=="party" or type=="raid" then
SetCVar("nameplateShowDebuffsOnFriendly", 0)
else
SetCVar("nameplateShowDebuffsOnFriendly", 1)
end
z:UnregisterEvent("PLAYER_ENTERING_WORLD")
end)

commented

Sorry, did this ever get a fix? I'm still getting this issue...

commented

Didn't test it yet, but seems the fix was released: 90af562

commented

This happens as part of a change in 7.2.5 where dispellable debuffs are shown on friendly nameplates. In instances these frames are protected as of 7.2. Hopefully this helps in creating a work around for these errors.

commented

This happens for me as well. In raids the error count quickly goes into the thousands.

I've noticed an unfortunate side effect: Eventually the timers on action buttons break completely and, when this happens, the related action bar buttons occasionally become completely unresponsive even when the (non displayed) cooldown is up. This is with Bartender.

A quick reload fixes this for a while but it's a really annoying bug. A quick solution would be most appreciated <3

commented
diff --git a/OmniCC/core/cooldown.lua b/OmniCC/core/cooldown.lua
index b9ab98b..3d6e078 100644
--- a/OmniCC/core/cooldown.lua
+++ b/OmniCC/core/cooldown.lua
@@ -7,8 +7,12 @@ local Cooldown = OmniCC:New('Cooldown')
 
 
 --[[ Control ]]--
+local banned = {}
 
 function Cooldown:Start(...)
+    if banned[self] then
+        return
+    end
        Cooldown.UpdateAlpha(self)
 
        if Cooldown.CanShow(self, ...) then
@@ -105,4 +109,20 @@ function Cooldown:ForAll(func, ...)
        for cooldown in pairs(OmniCC.Cache) do
                func(cooldown, ...)
        end
-end
\ No newline at end of file
+end
+
+local nameplateBuffFrames = {}
+function Cooldown:OnEvent(event, nameplate)
+    -- event == FORBIDDEN_NAME_PLATE_CREATED
+    nameplateBuffFrames[nameplate.UnitFrame.BuffFrame] = true
+end
+
+function Cooldown.CheckIfNameplateBuff(ty, name, parent, template)
+    if template == "NameplateBuffButtonTemplate" and nameplateBuffFrames[parent] then
+        banned[_G[name].Cooldown] = true
+    end
+end
+
+hooksecurefunc("CreateFrame", Cooldown.CheckIfNameplateBuff)
+Cooldown:SetScript("OnEvent", Cooldown.OnEvent)
+Cooldown:RegisterEvent("FORBIDDEN_NAME_PLATE_CREATED");

is a hack, and fixes the omnicc error, but won't fix the issue where it will break tooltips. That occurs because everything and their mother hooks tooltips expecting them to not be secure, but hovering over one of these debuffs has Owner be secure, and that breaks everything, often permanently somehow.

commented

I'm getting the same "Attempt to access forbidden object from code tainted by an AddOn" error since a while ago, checked every single addon and found out that OmniCC is the problem. :/
Hope we get a fix soon.

commented

Disabling friendly nameplates (Shift-V by default) will mitigate the issue for now.

commented

wowscrnshot_081817_142741

Bumping this post and including my screenshot. Is a fix possible? Thanks :D

commented

Same issue here, having KUI nameplates. Disabling friendly nameplates (shift+v) fixes it.