diff --git a/Ghidra/Framework/Docking/src/main/java/docking/options/editor/OptionsTreeNode.java b/Ghidra/Framework/Docking/src/main/java/docking/options/editor/OptionsTreeNode.java index 722abc4106..6a3b5c86ff 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/options/editor/OptionsTreeNode.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/options/editor/OptionsTreeNode.java @@ -144,6 +144,10 @@ class OptionsTreeNode extends GTreeLazyNode { if (obj.getClass() != getClass()) { return false; } - return getName().equals(((OptionsTreeNode) obj).getName()); + OptionsTreeNode other = (OptionsTreeNode) obj; + if (!getName().equals(other.getName())) { + return false; + } + return Objects.equals(options, other.options); } } diff --git a/Ghidra/Framework/Generic/src/main/java/ghidra/framework/options/SubOptions.java b/Ghidra/Framework/Generic/src/main/java/ghidra/framework/options/SubOptions.java index 0ad00dd09a..734bbccf2f 100644 --- a/Ghidra/Framework/Generic/src/main/java/ghidra/framework/options/SubOptions.java +++ b/Ghidra/Framework/Generic/src/main/java/ghidra/framework/options/SubOptions.java @@ -368,4 +368,27 @@ public class SubOptions implements Options { Set leaves = AbstractOptions.getLeaves(optionPaths); return new ArrayList(leaves); } + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj == null) { + return false; + } + if (obj.getClass() != getClass()) { + return false; + } + SubOptions other = (SubOptions) obj; + if (!options.equals(other.options)) { + return false; + } + return prefix.equals(other.prefix); + } + + @Override + public int hashCode() { + return prefix.hashCode(); + } }