FIRE-36116 Experimental outfits list refresh optimization (debounce redundant refreshList() calls, the onIdleRefreshList() should take care of the updates) - disabled by default

Use FSExperimentalOutfitsReturn debug setting to access it

Signed-off-by: PanteraPolnocy <panterapolnocy@gmail.com>
master
PanteraPolnocy 2025-11-18 13:18:35 +01:00
parent be91f40da3
commit f6276fa433
2 changed files with 20 additions and 0 deletions

View File

@ -27072,5 +27072,16 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>0</integer>
</map>
<key>FSExperimentalOutfitsReturn</key>
<map>
<key>Comment</key>
<string>FIRE-36116 - debounce redundant refreshList calls</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
</map>
</llsd>

View File

@ -1072,6 +1072,15 @@ void LLOutfitListBase::refreshList(const LLUUID& category_id)
return;
}
bool wasNull = mRefreshListState.CategoryUUID.isNull();
// <FS:PP> FIRE-36116 (saving a second outfit freezes Firestorm indefinitely)
static LLCachedControl<bool> fsExperimentalOutfitsReturn(gSavedSettings, "FSExperimentalOutfitsReturn");
if (fsExperimentalOutfitsReturn && !wasNull && mRefreshListState.CategoryUUID == category_id)
{
return;
}
// </FS:PP>
mRefreshListState.CategoryUUID.setNull();
LLInventoryModel::cat_array_t cat_array;