summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelcontents.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2025-01-02 23:08:38 +0200
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2025-01-03 19:11:56 +0200
commit85162a4f609efaf3aa7412c6cd422f3900ba0cb3 (patch)
tree4f06cf24c420b39e1d3008f107f7796c3bdec8e1 /indra/newview/llpanelcontents.cpp
parenta259316dc6212744194f340246b840e0a42b0191 (diff)
#3302 Crash at LLSaveFolderState::doFolder
Diffstat (limited to 'indra/newview/llpanelcontents.cpp')
-rw-r--r--indra/newview/llpanelcontents.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index 2624ef1207..7910bcb41d 100644
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -145,6 +145,7 @@ void LLPanelContents::onFilterEdit()
}
else
{
+ LLFolderView* root_folder = mPanelInventoryObject->getRootFolder();
if (filter_substring.empty())
{
if (mPanelInventoryObject->getFilter().getFilterSubString().empty())
@@ -155,19 +156,28 @@ void LLPanelContents::onFilterEdit()
if (mDirtyFilter && !mSavedFolderState.hasOpenFolders())
{
- mPanelInventoryObject->getRootFolder()->setOpenArrangeRecursively(true, LLFolderViewFolder::ERecurseType::RECURSE_DOWN);
+ if (root_folder)
+ {
+ root_folder->setOpenArrangeRecursively(true, LLFolderViewFolder::ERecurseType::RECURSE_DOWN);
+ }
}
else
{
mSavedFolderState.setApply(true);
- mPanelInventoryObject->getRootFolder()->applyFunctorRecursively(mSavedFolderState);
+ if (root_folder)
+ {
+ root_folder->applyFunctorRecursively(mSavedFolderState);
+ }
}
mDirtyFilter = false;
// Add a folder with the current item to the list of previously opened folders
- LLOpenFoldersWithSelection opener;
- mPanelInventoryObject->getRootFolder()->applyFunctorRecursively(opener);
- mPanelInventoryObject->getRootFolder()->scrollToShowSelection();
+ if (root_folder)
+ {
+ LLOpenFoldersWithSelection opener;
+ root_folder->applyFunctorRecursively(opener);
+ root_folder->scrollToShowSelection();
+ }
}
else if (mPanelInventoryObject->getFilter().getFilterSubString().empty())
{
@@ -175,7 +185,10 @@ void LLPanelContents::onFilterEdit()
if (!mPanelInventoryObject->getFilter().isNotDefault())
{
mSavedFolderState.setApply(false);
- mPanelInventoryObject->getRootFolder()->applyFunctorRecursively(mSavedFolderState);
+ if (root_folder)
+ {
+ root_folder->applyFunctorRecursively(mSavedFolderState);
+ }
mDirtyFilter = false;
}
}