diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bean/SetEquateDialog.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bean/SetEquateDialog.java index 02b1a0e326..8dc1d84ab5 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bean/SetEquateDialog.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bean/SetEquateDialog.java @@ -210,11 +210,8 @@ public class SetEquateDialog extends DialogComponentProvider { .stream() .filter(dt -> dt instanceof Enum) .map(Enum.class::cast) - .filter(enoom -> enoom.getName(scalar.getValue()) != null) - .forEach(enoom -> { - String name = enoom.getName(scalar.getValue()); - entries.add(new EquateRowObject(name, enoom)); - }); + .flatMap(enoom -> Arrays.stream(enoom.getNames(scalar.getValue())).map(name -> new EquateRowObject(name, enoom))) + .forEach(entries::add); //@formatter:on return entries; diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/EnumDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/EnumDB.java index e8913e6632..b15b7d63af 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/EnumDB.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/EnumDB.java @@ -162,6 +162,23 @@ class EnumDB extends DataTypeDB implements Enum { } } + @Override + public String[] getNames(long value) { + lock.acquire(); + try { + checkIsValid(); + initializeIfNeeded(); + List list = valueMap.get(value); + if (list == null) { + return new String[0]; + } + return list.toArray(new String[0]); + } + finally { + lock.release(); + } + } + @Override public boolean hasLanguageDependantLength() { return false;