diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2021-12-13 19:26:31 +0200 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2021-12-13 19:42:20 +0200 | 
| commit | ac54b72974f3d00d0e02fdc5aec86f1e632df76d (patch) | |
| tree | dc0fa661401b2d7d5e9ed838a915539221d2b4b8 | |
| parent | 15e91c8f8abf52183bd7bae7d1beec5b6db7f844 (diff) | |
SL-16497 Fix inventory update recursion
| -rw-r--r-- | indra/newview/llinventorymodel.cpp | 17 | 
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) | 
