GP-3632 Corrected pointer and array replacement issues

This commit is contained in:
ghidra1 2024-02-12 16:10:24 -05:00
parent 2d9a1ac539
commit b0b813edf9
2 changed files with 2 additions and 2 deletions

View file

@ -282,7 +282,7 @@ class ArrayDB extends DataTypeDB implements Array {
new ArrayDataType(newDt, getNumElements(), newElementLength, dataMgr); new ArrayDataType(newDt, getNumElements(), newElementLength, dataMgr);
DataType existingArray = DataType existingArray =
dataMgr.getDataType(newDt.getCategoryPath(), newArray.getName()); dataMgr.getDataType(newDt.getCategoryPath(), newArray.getName());
if (existingArray != null) { if (existingArray != null && existingArray != this) {
// avoid duplicate array - replace this array with existing one // avoid duplicate array - replace this array with existing one
dataMgr.addDataTypeToReplace(this, existingArray); dataMgr.addDataTypeToReplace(this, existingArray);
return; return;

View file

@ -367,7 +367,7 @@ class PointerDB extends DataTypeDB implements Pointer {
hasLanguageDependantLength() ? -1 : getLength(), dataMgr); hasLanguageDependantLength() ? -1 : getLength(), dataMgr);
DataType existingPtr = DataType existingPtr =
dataMgr.getDataType(newDt.getCategoryPath(), newPtr.getName()); dataMgr.getDataType(newDt.getCategoryPath(), newPtr.getName());
if (existingPtr != null) { if (existingPtr != null && existingPtr != this) {
// avoid duplicate pointer - replace this pointer with existing one // avoid duplicate pointer - replace this pointer with existing one
dataMgr.addDataTypeToReplace(this, existingPtr); dataMgr.addDataTypeToReplace(this, existingPtr);
return; return;