Fixed critical bug EXT-4725 (Viewer crashes if try to call from 'Nearby voice' floater)
- reason: LLContextMenu was not not deleted when LLPanelPeopleMenus::ContextMenu was destroyed.
Associated callbacks were called by Menu Holder for last selected menu_item_call for destroyed LLParticipantList::LLParticipantListMenu
- fix: added destruction of LLContextMenu when LLPanelPeopleMenus::ContextMenu is destructed.
--HG--
branch : product-engine
master
parent
684cfb722e
commit
b68ccadd46
|
|
@ -55,6 +55,15 @@ ContextMenu::ContextMenu()
|
|||
{
|
||||
}
|
||||
|
||||
ContextMenu::~ContextMenu()
|
||||
{
|
||||
// do not forget delete LLContextMenu* mMenu.
|
||||
// It can have registered Enable callbacks which are called from the LLMenuHolderGL::draw()
|
||||
// via selected item (menu_item_call) by calling LLMenuItemCallGL::buildDrawLabel.
|
||||
// we can have a crash via using callbacks of deleted instance of ContextMenu. EXT-4725
|
||||
if (mMenu) mMenu->die();
|
||||
}
|
||||
|
||||
void ContextMenu::show(LLView* spawning_view, const std::vector<LLUUID>& uuids, S32 x, S32 y)
|
||||
{
|
||||
if (mMenu)
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class ContextMenu : public LLAvatarListItem::ContextMenu
|
|||
{
|
||||
public:
|
||||
ContextMenu();
|
||||
virtual ~ContextMenu() {}
|
||||
virtual ~ContextMenu();
|
||||
|
||||
/**
|
||||
* Show the menu at specified coordinates.
|
||||
|
|
|
|||
Loading…
Reference in New Issue