Skip to content

Commit 85162a4

Browse files
committed
#3302 Crash at LLSaveFolderState::doFolder
1 parent a259316 commit 85162a4

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

indra/newview/llpanelcontents.cpp

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ void LLPanelContents::onFilterEdit()
145145
}
146146
else
147147
{
148+
LLFolderView* root_folder = mPanelInventoryObject->getRootFolder();
148149
if (filter_substring.empty())
149150
{
150151
if (mPanelInventoryObject->getFilter().getFilterSubString().empty())
@@ -155,27 +156,39 @@ void LLPanelContents::onFilterEdit()
155156

156157
if (mDirtyFilter && !mSavedFolderState.hasOpenFolders())
157158
{
158-
mPanelInventoryObject->getRootFolder()->setOpenArrangeRecursively(true, LLFolderViewFolder::ERecurseType::RECURSE_DOWN);
159+
if (root_folder)
160+
{
161+
root_folder->setOpenArrangeRecursively(true, LLFolderViewFolder::ERecurseType::RECURSE_DOWN);
162+
}
159163
}
160164
else
161165
{
162166
mSavedFolderState.setApply(true);
163-
mPanelInventoryObject->getRootFolder()->applyFunctorRecursively(mSavedFolderState);
167+
if (root_folder)
168+
{
169+
root_folder->applyFunctorRecursively(mSavedFolderState);
170+
}
164171
}
165172
mDirtyFilter = false;
166173

167174
// Add a folder with the current item to the list of previously opened folders
168-
LLOpenFoldersWithSelection opener;
169-
mPanelInventoryObject->getRootFolder()->applyFunctorRecursively(opener);
170-
mPanelInventoryObject->getRootFolder()->scrollToShowSelection();
175+
if (root_folder)
176+
{
177+
LLOpenFoldersWithSelection opener;
178+
root_folder->applyFunctorRecursively(opener);
179+
root_folder->scrollToShowSelection();
180+
}
171181
}
172182
else if (mPanelInventoryObject->getFilter().getFilterSubString().empty())
173183
{
174184
// The first letter in search term, save existing folder open state
175185
if (!mPanelInventoryObject->getFilter().isNotDefault())
176186
{
177187
mSavedFolderState.setApply(false);
178-
mPanelInventoryObject->getRootFolder()->applyFunctorRecursively(mSavedFolderState);
188+
if (root_folder)
189+
{
190+
root_folder->applyFunctorRecursively(mSavedFolderState);
191+
}
179192
mDirtyFilter = false;
180193
}
181194
}

0 commit comments

Comments
 (0)