SL-19886 Fix onidle crash after closing inventory floater

master
Andrey Kleshchev 2023-06-17 01:31:02 +03:00
parent 7607047a95
commit b5b0c17439
2 changed files with 9 additions and 5 deletions

View File

@ -55,7 +55,7 @@ void LLCallbackList::addFunction( callback_t func, void *data)
// only add one callback per func/data pair
//
if (containsFunction(func))
if (containsFunction(func, data))
{
return;
}

View File

@ -143,8 +143,8 @@ LLInventoryGallery::~LLInventoryGallery()
delete mInventoryGalleryMenu;
delete mRootGalleryMenu;
delete mFilter;
gIdleCallbacks.deleteFunction(onIdle, this);
gIdleCallbacks.deleteFunction(onIdle, (void*)this);
while (!mUnusedRowPanels.empty())
{
@ -184,8 +184,6 @@ LLInventoryGallery::~LLInventoryGallery()
void LLInventoryGallery::setRootFolder(const LLUUID cat_id)
{
gIdleCallbacks.deleteFunction(onIdle, this);
LLViewerInventoryCategory* category = gInventory.getCategory(cat_id);
if(!category || (mFolderID == cat_id))
{
@ -195,7 +193,13 @@ void LLInventoryGallery::setRootFolder(const LLUUID cat_id)
{
mBackwardFolders.push_back(mFolderID);
}
gIdleCallbacks.deleteFunction(onIdle, (void*)this);
mFolderID = cat_id;
mItemToSelect.setNull();
mItemBuildQuery.clear();
mNeedsArrange = false;
dirtyRootFolder();
}