summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-12-13 19:26:31 +0200
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-12-13 19:42:20 +0200
commitac54b72974f3d00d0e02fdc5aec86f1e632df76d (patch)
treedc0fa661401b2d7d5e9ed838a915539221d2b4b8 /indra
parent15e91c8f8abf52183bd7bae7d1beec5b6db7f844 (diff)
SL-16497 Fix inventory update recursion
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llinventorymodel.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index 2ad95991a2..bf07793e8b 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -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)