From b88946787be9549a950558419bcb29c084905f9a Mon Sep 17 00:00:00 2001 From: ghidravore Date: Fri, 14 Feb 2020 17:22:59 -0500 Subject: [PATCH] fixed issue in GTree where calling setChildren with exiting children put the tree in a bad state --- .../src/main/java/docking/widgets/tree/CoreGTreeNode.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/CoreGTreeNode.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/CoreGTreeNode.java index 099e92c268..1464e1c9fe 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/CoreGTreeNode.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/CoreGTreeNode.java @@ -169,7 +169,11 @@ abstract class CoreGTreeNode implements Cloneable { if (oldChildren != null) { for (GTreeNode node : oldChildren) { - node.dispose(); + // only dispose old nodes that aren't included in the new child list - if any + // old nodes don't have a parent, then they were not include in the new list + if (node.getParent() == null) { + node.dispose(); + } } } }