AddOnSkins

10M Downloads

WOTLK - AddonSkins v4.63 and later incompatible with Addons that use LibExtraTip

rdobkins opened this issue ยท 10 comments

commented

After updating I get the following similar lua errors with any addon enabled that uses LibExtraTip, Auctioneer, BiSTooltip etc. Below is a copy of the lua error when BisTooltip is enabled:

4x AddOnSkins/SkinsLibraries.lua:258: attempt to call field 'GetFreeExtraTipObject' (a nil value)
[string "@AddOnSkins/SkinsLibraries.lua"]:258: in function <AddOnSkins/SkinsLibraries.lua:257>
[string "=(tail call)"]: ?
[string "=[C]"]: in function GetFreeExtraTipObject' [string "@Bistooltip/lib/LibExtraTip/LibExtraTip.lua"]:195: in function h'
[string "@Bistooltip/lib/LibExtraTip/LibExtraTip.lua"]:480: in function <...ceBistooltip/lib/LibExtraTip/LibExtraTip.lua:476>
[string "=[C]"]: ?
[string "=[C]"]: in function SetAction' [string "@ElvUI_Libraries/Core/LibActionButton-1.0-70/LibActionButton-1.0.lua"]:2445: in function SetTooltip'
[string "@ElvUI_Libraries/Core/LibActionButton-1.0-70/LibActionButton-1.0.lua"]:2146: in function <...ies/Core/LibActionButton-1.0/LibActionButton-1.0.lua:2138>
[string "@ElvUI_Libraries/Core/LibActionButton-1.0-70/LibActionButton-1.0.lua"]:1098: in function <...ies/Core/LibActionButton-1.0/LibActionButton-1.0.lua:1096>
[string "=(tail call)"]: ?
[string "=[C]"]: ?

Locals:
tip =

{
AddMoneyLine = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:802
Activate = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:999
SetHyperlinkAndCount = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:832
AddCallback = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:617
AddLine = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:708
hookStore =
{
}
GetTooltipAdditional = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:951
embedMode = false
tooltipRegistry =
{
}
GetFreeExtraTipObject = defined =[C]:-1
IsRegistered = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:580
sortedCallbacks =
{
}
callbacks =
{
}
Deactivate = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:966
extraTippool =
{
}
SetBattlePetAndCount = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:868
RemoveCallback = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:664
SetEmbedMode = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:692
GetMoneyText = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:763
RegisterTooltip = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:524
AddDoubleLine = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:738
GetExtraTip = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:595
}
(*temporary) = nil
(*temporary) =
{
AddMoneyLine = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:802
Activate = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:999
SetHyperlinkAndCount = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:832
AddCallback = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:617
AddLine = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:708
hookStore =
{
}
GetTooltipAdditional = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:951
embedMode = false
tooltipRegistry =
{
}
GetFreeExtraTipObject = defined =[C]:-1
IsRegistered = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:580
sortedCallbacks =
{
}
callbacks =
{
}
Deactivate = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:966
extraTippool =
{
}
SetBattlePetAndCount = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:868
RemoveCallback = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:664
SetEmbedMode = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:692
GetMoneyText = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:763
RegisterTooltip = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:524
AddDoubleLine = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:738
GetExtraTip = defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:595
}
(*temporary) = "attempt to call field 'GetFreeExtraTipObject' (a nil value)"
S =
{
HandleCollapseTexture = defined @AddOnSkins/Core/Skins.lua:2129
Point = defined @AddOnSkins/Core/Skins.lua:212
HandleFrame = defined @AddOnSkins/Core/Skins.lua:580
ArrowRotation =
{
}
HandleNextPrevButton = defined @AddOnSkins/Core/Skins.lua:1508
modules =
{
}
ToggleBorders = defined @AddOnSkins/Core/Skins.l

commented

The "_G." added to line 252 in Skins\Addons\Libraries.lua in v4.66 breaks the quality border on extra tooltips like Auctioneer and BisToolTip. Reverting the line to: local color = BAG_ITEM_QUALITY_COLORS[quality] brings the quality border back.

commented

If you disable the function altogether the quality border doesn't show up on the extra tips that BiSTooltip and Auctioneer use. If you change SecureHook back to RawHook, the errors are gone and the tooltips appear as they should with the quality border showing back up.

Because RawHook replaces the function.. since it no longer exists.. it will be added with RawHook. That doesn't negate the fact it was supposed to follow the original call. Putting it back into the library with that method could cause the library to break in other ways.

commented

Because RawHook replaces the function.. since it no longer exists.. it will be added with RawHook. That doesn't negate the fact it was supposed to follow the original call. Putting it back into the library with that method could cause the library to break in other ways.

Understood. It appears to work fine in v4.66 if you remove _G. from line 252.

commented

I am also getting similar Lua error. Goes away when I disable BisToolTip

Message: ...terface/AddOns/AddOnSkins/Skins/AddOns/Libraries.lua:258: attempt to call field 'GetFreeExtraTipObject' (a nil value)
Time: Sun May 7 15:55:54 2023
Count: 41
Stack: ...terface/AddOns/AddOnSkins/Skins/AddOns/Libraries.lua:258: attempt to call field 'GetFreeExtraTipObject' (a nil value)
[string "=[tsm error check]"]:1: in main chunk
[string "=(tail call)"]: ?
[string "=[C]"]: in function GetFreeExtraTipObject' [string "@Interface/AddOns/AddOnSkins/Skins/AddOns/Libraries.lua"]:258: in function <...terface/AddOns/AddOnSkins/Skins/AddOns/Libraries.lua:257> [string "=(tail call)"]: ? [string "=[C]"]: in function GetFreeExtraTipObject'
[string "@Interface/AddOns/Bistooltip/lib/LibExtraTip/LibExtraTip.lua"]:226: in function `h'
[string "@Interface/AddOns/Bistooltip/lib/LibExtraTip/LibExtraTip.lua"]:480: in function <...ce/AddOns/Bistooltip/lib/LibExtraTip/LibExtraTip.lua:476>
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?

Locals:

commented
commented

I'm still having this issue. I think the change is because the function hook for LibExtraTip changed from RawHook to SecureHook in \Skins\Addons\Libraries.lua

commented

I'll have to check when I get home. RawHook replaces the function. SecureHook will follow the function call afterwards which is normally how we skin.

commented

Well he said they moved the function to a private method on the Library end.

commented

The SecureHook change was correct, as in 4.62 LibExtraTip hook said RawHook was used when SecureHook should, but then with the latest AddOnSkins, SecureHook was failing due to the hooked function not existing, because it was moved to LibExtraTip.private. Technically we can still access it, but when its hooked it then errors in the hook itself, and it being in "private" tells me we probably shouldn't hook it.

commented

If you disable the function altogether the quality border doesn't show up on the extra tips that BiSTooltip and Auctioneer use. If you change SecureHook back to RawHook, the errors are gone and the tooltips appear as they should with the quality border showing back up.