diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/ArrayDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/ArrayDB.java index 6aeffd512d..9b7ca2151b 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/ArrayDB.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/ArrayDB.java @@ -282,7 +282,7 @@ class ArrayDB extends DataTypeDB implements Array { new ArrayDataType(newDt, getNumElements(), newElementLength, dataMgr); DataType existingArray = dataMgr.getDataType(newDt.getCategoryPath(), newArray.getName()); - if (existingArray != null) { + if (existingArray != null && existingArray != this) { // avoid duplicate array - replace this array with existing one dataMgr.addDataTypeToReplace(this, existingArray); return; diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/PointerDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/PointerDB.java index 9b659f86e5..21aa3c398c 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/PointerDB.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/PointerDB.java @@ -367,7 +367,7 @@ class PointerDB extends DataTypeDB implements Pointer { hasLanguageDependantLength() ? -1 : getLength(), dataMgr); DataType existingPtr = dataMgr.getDataType(newDt.getCategoryPath(), newPtr.getName()); - if (existingPtr != null) { + if (existingPtr != null && existingPtr != this) { // avoid duplicate pointer - replace this pointer with existing one dataMgr.addDataTypeToReplace(this, existingPtr); return;