diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/parser/FunctionSignatureParser.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/parser/FunctionSignatureParser.java index 8a74a413c9..603eac7cd5 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/parser/FunctionSignatureParser.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/parser/FunctionSignatureParser.java @@ -206,7 +206,7 @@ public class FunctionSignatureParser { // attempt to separate trailing parameter name from datatype and reparse int spaceIndex = arg.lastIndexOf(' '); if (spaceIndex < 0) { - throw new ParseException("Can't resolve datatype: " + dt); + throw new ParseException("Can't resolve datatype: " + arg); } int starIndex = arg.lastIndexOf('*'); int nameIndex = Math.max(spaceIndex, starIndex) + 1; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/util/data/DataTypeParser.java b/Ghidra/Features/Base/src/main/java/ghidra/util/data/DataTypeParser.java index 3dc3e1a8b7..e46cfd75dd 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/util/data/DataTypeParser.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/util/data/DataTypeParser.java @@ -416,7 +416,7 @@ public class DataTypeParser { // handle C primitives (e.g. long long, unsigned long int, etc.) DataType dataType = DataTypeUtilities.getCPrimitiveDataType(baseName); if (dataType != null) { - return dataType; + return dataType.clone(dtm); } dtm.findDataTypes(baseName, list); diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/ParameterDefinitionImpl.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/ParameterDefinitionImpl.java index 647130b0f5..25384ef8ca 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/ParameterDefinitionImpl.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/ParameterDefinitionImpl.java @@ -48,7 +48,8 @@ public class ParameterDefinitionImpl implements ParameterDefinition { * @throws IllegalArgumentException if invalid parameter datatype specified */ protected ParameterDefinitionImpl(String name, DataType dataType, String comment, int ordinal) { - this.dataType = validateDataType(dataType, null, false); + this.dataType = validateDataType(dataType, + dataType != null ? dataType.getDataTypeManager() : null, false); this.name = name; this.comment = comment; this.ordinal = ordinal;