CHUI-211: Problem was due to a non-heap variable being deleted and then referenced later (which was found by ProductEngine). Also the crash occurred at a specifc location llpangelobjectinventory::reset() during a static_cast, so now using a dynamic_cast as a safeguard.

master
Gilbert Gonzales 2012-07-24 14:42:28 -07:00
parent f303eeccf7
commit decd8a435d
2 changed files with 8 additions and 2 deletions

View File

@ -266,7 +266,8 @@ LLFolderView::~LLFolderView( void )
mItems.clear();
mFolders.clear();
delete mViewModel;
//product engine bugfix, prevent deletion of non-heap data
//delete mViewModel;
mViewModel = NULL;
}

View File

@ -1565,7 +1565,12 @@ void LLPanelObjectInventory::reset()
mFolders = LLUICtrlFactory::create<LLFolderView>(p);
// this ensures that we never say "searching..." or "no items found"
//TODO RN: make this happen by manipulating filter object directly
static_cast<LLInventoryFilter*>(mFolders->getFolderViewModel()->getFilter())->setShowFolderState(LLInventoryFilter::SHOW_ALL_FOLDERS);
LLInventoryFilter* inventoryFilter = dynamic_cast<LLInventoryFilter*>(mFolders->getFolderViewModel()->getFilter());
if(inventoryFilter)
{
inventoryFilter->setShowFolderState(LLInventoryFilter::SHOW_ALL_FOLDERS);
}
mFolders->setCallbackRegistrar(&mCommitCallbackRegistrar);
if (hasFocus())