summaryrefslogtreecommitdiff
path: root/indra/llui/lllineeditor.cpp
diff options
context:
space:
mode:
authorandreykproductengine <akleshchev@productengine.com>2016-09-13 20:32:34 +0300
committerandreykproductengine <akleshchev@productengine.com>2016-09-13 20:32:34 +0300
commita195406e484047cefc699a03c769816c4a8dc0f0 (patch)
tree1f57712edc4d6459db45abb1dd2cea5ece384a33 /indra/llui/lllineeditor.cpp
parent07cc376831b38334d9bcadf52b030073ced571da (diff)
MAINT-6726 Fixed LLLineEditor menus staying in memory forever
Diffstat (limited to 'indra/llui/lllineeditor.cpp')
-rw-r--r--indra/llui/lllineeditor.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp
index 492c9315d1..c89e1dac1d 100644
--- a/indra/llui/lllineeditor.cpp
+++ b/indra/llui/lllineeditor.cpp
@@ -2636,10 +2636,17 @@ void LLLineEditor::showContextMenu(S32 x, S32 y)
void LLLineEditor::setContextMenu(LLContextMenu* new_context_menu)
{
- if (new_context_menu)
- mContextMenuHandle = new_context_menu->getHandle();
- else
- mContextMenuHandle.markDead();
+ LLContextMenu* menu = static_cast<LLContextMenu*>(mContextMenuHandle.get());
+ if (menu)
+ {
+ menu->die();
+ mContextMenuHandle.markDead();
+ }
+
+ if (new_context_menu)
+ {
+ mContextMenuHandle = new_context_menu->getHandle();
+ }
}
void LLLineEditor::setFont(const LLFontGL* font)