From f4621a90de482327d3f3d98c6535b1910778b848 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Fri, 30 Nov 2012 20:55:54 -0500 Subject: [PATCH] Don't leak the hidden child if present. --- .../user_interface/gui/team_window/VariablesView.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/apps/debugger/user_interface/gui/team_window/VariablesView.cpp b/src/apps/debugger/user_interface/gui/team_window/VariablesView.cpp index bba9d0566f..4093506812 100644 --- a/src/apps/debugger/user_interface/gui/team_window/VariablesView.cpp +++ b/src/apps/debugger/user_interface/gui/team_window/VariablesView.cpp @@ -1033,12 +1033,13 @@ VariablesView::VariableTableModel::ValueNodeChildrenDeleted(ValueNode* node) // in the case of an address node with a hidden child, // we want to send removal notifications for the children // instead. + BReference hiddenChild; if (modelNode->CountChildren() == 1 && modelNode->ChildAt(0)->IsHidden()) { - ModelNode* tempNode = modelNode->ChildAt(0); - modelNode->RemoveChild(tempNode); - modelNode = tempNode; - fNodeTable.Remove(tempNode); + hiddenChild.SetTo(modelNode->ChildAt(0), true); + modelNode->RemoveChild(hiddenChild); + modelNode = hiddenChild; + fNodeTable.Remove(hiddenChild); } for (int32 i = 0; i < modelNode->CountChildren(); i++) {