From fcf96d4e3b0712e709e31c8ff4dffa740540c894 Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 10 Jan 2025 22:01:23 +0000 Subject: [PATCH] FIRE-35010 - (BugSplat) Crash with "filter" input box while loading contents --- indra/newview/llpanelcontents.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp index 74b7c386bb..b1468b7a94 100644 --- a/indra/newview/llpanelcontents.cpp +++ b/indra/newview/llpanelcontents.cpp @@ -177,6 +177,14 @@ void LLPanelContents::getState(LLViewerObject *objectp ) void LLPanelContents::onFilterEdit() { const std::string& filter_substring = mFilterEditor->getText(); + // FIRE-35010 Bugsplat crash with filter while loading contents + auto root_folder = mPanelInventoryObject->getRootFolder(); + if (!root_folder) + { + mPanelInventoryObject->getFilter().setFilterSubString(filter_substring); + return; + } + // if (filter_substring.empty()) { if (mPanelInventoryObject->getFilter().getFilterSubString().empty()) @@ -186,12 +194,12 @@ void LLPanelContents::onFilterEdit() } mSavedFolderState.setApply(true); - mPanelInventoryObject->getRootFolder()->applyFunctorRecursively(mSavedFolderState); + root_folder->applyFunctorRecursively(mSavedFolderState); // FIRE-35010 Bugsplat crash with filter while loading contents // Add a folder with the current item to the list of previously opened folders LLOpenFoldersWithSelection opener; - mPanelInventoryObject->getRootFolder()->applyFunctorRecursively(opener); - mPanelInventoryObject->getRootFolder()->scrollToShowSelection(); + root_folder->applyFunctorRecursively(opener); // FIRE-35010 Bugsplat crash with filter while loading contents + root_folder->scrollToShowSelection(); // FIRE-35010 Bugsplat crash with filter while loading contents } else if (mPanelInventoryObject->getFilter().getFilterSubString().empty()) { @@ -199,7 +207,7 @@ void LLPanelContents::onFilterEdit() if (!mPanelInventoryObject->getFilter().isNotDefault()) { mSavedFolderState.setApply(false); - mPanelInventoryObject->getRootFolder()->applyFunctorRecursively(mSavedFolderState); + root_folder->applyFunctorRecursively(mSavedFolderState); // FIRE-35010 Bugsplat crash with filter while loading contents } }