SL-16497 Fix inventory update recursion

meow-7.2.2
Andrey Kleshchev 2021-12-13 19:26:31 +02:00
parent 15e91c8f8a
commit ac54b72974
1 changed files with 16 additions and 1 deletions

View File

@ -1786,7 +1786,20 @@ void LLInventoryModel::addChangedMask(U32 mask, const LLUUID& referent)
mModifyMask |= mask;
}
if (referent.notNull() && (mChangedItemIDs.find(referent) == mChangedItemIDs.end()))
bool needs_update = false;
if (referent.notNull())
{
if (mIsNotifyObservers)
{
needs_update = mChangedItemIDsBacklog.find(referent) == mChangedItemIDsBacklog.end();
}
else
{
needs_update = mChangedItemIDs.find(referent) == mChangedItemIDs.end();
}
}
if (needs_update)
{
if (mIsNotifyObservers)
{
@ -1797,6 +1810,8 @@ void LLInventoryModel::addChangedMask(U32 mask, const LLUUID& referent)
mChangedItemIDs.insert(referent);
}
// Fix me: From DD-81, probably shouldn't be here, instead
// should be somewhere in an observer
update_marketplace_category(referent, false);
if (mask & LLInventoryObserver::ADD)