Open rowaasr13 opened 3 years ago
(I'm the author of Pawn)
Based on this description it definitely sounds like there are some times PawnIsContainerItemAnUpgrade
is returning nil
when it could be definitively returning false
. I've added an issue to look into that! (I'm currently tracking my to-dos on Azure DevOps so I don't have a public link to share, but it's issue 106 which is a totally believable and not-made-up-sounding number.)
Running Software (issues missing this information will be deleted):
Describe the bug
To Reproduce Steps to reproduce the behaviour:
Expected behaviour No endless loop and huge memory consumption.
Screenshots Screenshot with names of some items affected, stack trace and some instrumentation added to Pawn code that will be described below.![WoWScrnShot_011121_141639](https://user-images.githubusercontent.com/10935437/104177286-95daeb80-5419-11eb-9c39-0455eecc6367.png)
Additional context Instrumentation used: Addons\Pawn\Pawn.lua line 387 changed to:
PawnIsContainerItemAnUpgrade = function(bagID, slot, ...) print('line 387', GetTime())
line 389 changed to:local _, Count, _, _, _, _, ItemLink = GetContainerItemInfo(bagID, slot) print(ItemLink) assert(not GiveMeStack, "stack given!")
After that, I've opened inventory, watched endless roll of same 4 items you see on screenshot, typed
/run GiveMeStack=1
and traced issue to Bagnon through stack. ApparentlyPawnIsContainerItemAnUpgrade
always returnsnil
for those items andItem:UpdateUpgradeIcon()
repeats attempts to check their state forever.