CaerdonWardrobe/CaerdonAPI.lua:98: bad argument #1 to 'pairs' (table expected, got nil)
Sluimerstand opened this issue ยท 7 comments
15x CaerdonWardrobe/CaerdonAPI.lua:98: bad argument #1 to 'pairs' (table expected, got nil)
[string "=[C]"]: in function pairs' [string "@CaerdonWardrobe/CaerdonAPI.lua"]:98: in function
ProcessTooltipData'
[string "@CaerdonWardrobe/CaerdonItem.lua"]:472: in function GetTooltipData' [string "@CaerdonWardrobe/CaerdonItem.lua"]:809: in function
GetCaerdonStatus'
[string "@CaerdonWardrobe/CaerdonWardrobe.lua"]:685: in function ProcessItem' [string "@CaerdonWardrobe/CaerdonWardrobe.lua"]:832: in function
callbackFunction'
[string "@CaerdonWardrobe/types/EquipmentMixin.lua"]:56: in function LoadSources' [string "@CaerdonWardrobe/types/EquipmentMixin.lua"]:80: in function
ContinueOnItemDataLoad'
[string "@CaerdonWardrobe/CaerdonItem.lua"]:137: in function <CaerdonWardrobe/CaerdonItem.lua:130>
[string "=[C]"]: in function xpcall' [string "@FrameXML/ObjectAPI/AsyncCallbackSystem.lua"]:76: in function
FireCallbacks'
[string "@FrameXML/ObjectAPI/AsyncCallbackSystem.lua"]:35: in function <FrameXML/ObjectAPI/AsyncCallbackSystem.lua:31>
[string "=[C]"]: in function `resume'
[string "@CaerdonWardrobe/CaerdonWardrobe.lua"]:873: in function <CaerdonWardrobe/CaerdonWardrobe.lua:868>
Locals:
(*temporary) = nil
(*temporary) = "table expected, got nil"
= defined =[C]:-1
I was able to get past the error by adding null checks:
--- CaerdonAPI.lua 2023-05-06 15:44:52.126788345 -0400
+++ /home/marshall/wow/_retail_/Interface/AddOns/CaerdonWardrobe/CaerdonAPI.lua 2023-05-06 15:53:33.076792223 -0400
@@ -87,6 +87,7 @@
function CaerdonAPIMixin:ProcessTooltipData(tooltipData)
if not tooltipData then return end
+ if not tooltipData.args then return end
local data = {
type = tooltipData.type,
--- CaerdonItem.lua 2023-05-06 15:44:52.130121679 -0400
+++ /home/marshall/wow/_retail_/Interface/AddOns/CaerdonWardrobe/CaerdonItem.lua 2023-05-06 16:11:21.163466837 -0400
@@ -471,6 +471,7 @@
if not data.isCaerdonProcessed then
data = CaerdonAPI:ProcessTooltipData(data)
end
+ if not data then return tooltipData end
local isBattlePetShown = BattlePetTooltip:IsShown()
local lines = data.lines or {}
I have no idea of the consequences of this change, other than it seems to suppress the errors, and the Addon content seems to be showing.
I can only guess that the overall handling of nullity has changed somewhere.
Got this error after accepting a quest:
Message: ...nterface/AddOns/CaerdonWardrobe/types/QuestMixin.lua:143: attempt to call global 'GetNumRewardSpells' (a nil value)
Time: Sat May 6 16:19:41 2023
Count: 2
Stack: ...nterface/AddOns/CaerdonWardrobe/types/QuestMixin.lua:143: attempt to call global 'GetNumRewardSpells' (a nil value)
[string "@Interface/AddOns/CaerdonWardrobe/types/QuestMixin.lua"]:143: in function `GetQuestInfo'
[string "@Interface/AddOns/CaerdonWardrobe/features/QuestLog.lua"]:125: in function `callbackFunction'
[string "@Interface/AddOns/CaerdonWardrobe/types/QuestMixin.lua"]:42: in function `LoadQuestRewardData'
[string "@Interface/AddOns/CaerdonWardrobe/types/QuestMixin.lua"]:85: in function `ContinueOnItemDataLoad'
[string "@Interface/AddOns/CaerdonWardrobe/CaerdonItem.lua"]:152: in function <Interface/AddOns/CaerdonWardrobe/CaerdonItem.lua:145>
[string "=[C]"]: in function `xpcall'
[string "@Interface/FrameXML/ObjectAPI/AsyncCallbackSystem.lua"]:76: in function `FireCallbacks'
[string "@Interface/FrameXML/ObjectAPI/AsyncCallbackSystem.lua"]:35: in function <Interface/FrameXML/ObjectAPI/AsyncCallbackSystem.lua:31>
[string "=[C]"]: in function `accessor'
[string "@Interface/FrameXML/ObjectAPI/AsyncCallbackSystem.lua"]:52: in function `AddCallback'
[string "@Interface/AddOns/CaerdonWardrobe/CaerdonItem.lua"]:145: in function `ContinueOnItemLoad'
[string "@Interface/AddOns/CaerdonWardrobe/features/QuestLog.lua"]:118: in function <...terface/AddOns/CaerdonWardrobe/features/QuestLog.lua:109>
[string "=[C]"]: in function `xpcall'
[string "@Interface/FrameXML/ObjectAPI/AsyncCallbackSystem.lua"]:76: in function `FireCallbacks'
[string "@Interface/FrameXML/ObjectAPI/AsyncCallbackSystem.lua"]:35: in function <Interface/FrameXML/ObjectAPI/AsyncCallbackSystem.lua:31>
[string "=[C]"]: in function `accessor'
[string "@Interface/FrameXML/ObjectAPI/AsyncCallbackSystem.lua"]:52: in function `AddCallback'
[string "@Interface/AddOns/CaerdonWardrobe/features/QuestLog.lua"]:109: in function `OnQuestInfoShowRewards'
[string "@Interface/AddOns/CaerdonWardrobe/features/QuestLog.lua"]:78: in function `handler'
[string "@Interface/AddOns/CaerdonWardrobe/CaerdonWardrobe.lua"]:861: in function <Interface/AddOns/CaerdonWardrobe/CaerdonWardrobe.lua:852>
Locals: self = <table> {
ContinueOnItemDataLoad = <function> defined @Interface/AddOns/CaerdonWardrobe/types/QuestMixin.lua:80
GetQuestInfo = <function> defined @Interface/AddOns/CaerdonWardrobe/types/QuestMixin.lua:97
item = <table> {
}
ContinueWithCancelOnItemDataLoad = <function> defined @Interface/AddOns/CaerdonWardrobe/types/QuestMixin.lua:89
LoadQuestRewardData = <function> defined @Interface/AddOns/CaerdonWardrobe/types/QuestMixin.lua:16
}
item = <table> {
GetItemLocation = <function> defined @Interface/FrameXML/ObjectAPI/Item.lua:104
IsDataEvictable = <function> defined @Interface/FrameXML/ObjectAPI/Item.lua:302
GetEquipLocation = <function> defined @Interface/AddOns/CaerdonWardrobe/CaerdonItem.lua:239
HasItemLocationBankOrBags = <function> defined @Interface/AddOns/CaerdonWardrobe/CaerdonItem.lua:304
GetItemData = <function> defined @Interface/AddOns/CaerdonWardrobe/CaerdonItem.lua:1118
LockItem = <function> defined @Interface/FrameXML/ObjectAPI/Item.lua:171
IsItemDataCached = <function> defined @Interface/FrameXML/ObjectAPI/Item.lua:291
GetInventoryTypeName = <function> defined @Interface/FrameXML/ObjectAPI/Item.lua:285
GetItemQualityColor = <function> defined @Interface/FrameXML/ObjectAPI/Item.lua:248
Matches = <function> defined @Interface/FrameXML/ObjectAPI/Item.lua:66
itemLink = "[Loa of Winds]"
GetItemQuality = <function> defined @Interface/FrameXML/ObjectAPI/Item.lua:219
Clear = <function> defined @Interface/AddOns/CaerdonWardrobe/CaerdonItem.lua:117
GetItemIcon = <function> defined @Interface/FrameXML/ObjectAPI/Item.lua:183
GetItemMaxStackSize = <function> defined @Interface/FrameXML/ObjectAPI/Item.lua:258
GetSetID = <function> defined @Interface/AddOns/CaerdonWardrobe/CaerdonItem.lua:3
Not as severe, however.
Ok, that function (GetNumRewardSpells
) has been removed...
https://wowpedia.fandom.com/wiki/Patch_10.1.0/API_changes
This is all new to me, no idea if there's a suitable replacement.
Again, if I just comment out any references to numQuestSpellRewards
then it "works". I doubt it's a good solution though.
@Caerdon If you want to give some feedback here, I can try to do a proper PR. (Though given the lack of recent updates, I think we all understand if you don't have the time.)