MAINT-4009: Patching the memory leak occurring in the scenario where avatar icon was being created, but the tab container did not have a button to accept the gieven icon.
parent
827a9f7c2d
commit
8247f51684
|
|
@ -1647,16 +1647,26 @@ void LLTabContainer::setTabImage(LLPanel* child, LLIconCtrl* icon)
|
|||
{
|
||||
LLTabTuple* tuple = getTabByPanel(child);
|
||||
LLCustomButtonIconCtrl* button;
|
||||
bool hasButton = false;
|
||||
|
||||
if(tuple)
|
||||
{
|
||||
button = dynamic_cast<LLCustomButtonIconCtrl*>(tuple->mButton);
|
||||
if(button)
|
||||
{
|
||||
hasButton = true;
|
||||
button->setIcon(icon);
|
||||
reshapeTuple(tuple);
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasButton && (icon != NULL))
|
||||
{
|
||||
// It was assumed that the tab's button would take ownership of the icon pointer.
|
||||
// But since the tab did not have a button, kill the icon to prevent the memory
|
||||
// leak.
|
||||
icon->die();
|
||||
}
|
||||
}
|
||||
|
||||
void LLTabContainer::reshapeTuple(LLTabTuple* tuple)
|
||||
|
|
|
|||
Loading…
Reference in New Issue