Merge remote-tracking branch 'origin/GP-1624_ghidra1_FuncDefOrdinalAdjustment' into patch

This commit is contained in:
ghidra1
2021-12-22 15:31:23 -05:00
@@ -97,11 +97,13 @@ public class FunctionDefinitionDataType extends GenericDataType implements Funct
Parameter[] parameters = function.getParameters(); Parameter[] parameters = function.getParameters();
ArrayList<ParameterDefinition> paramList = new ArrayList<ParameterDefinition>(); ArrayList<ParameterDefinition> paramList = new ArrayList<ParameterDefinition>();
int ordinalAdjustment = 0;
for (Parameter parameter : parameters) { for (Parameter parameter : parameters) {
if (formalSignature && parameter.isAutoParameter()) { if (formalSignature && parameter.isAutoParameter()) {
--ordinalAdjustment;
continue; continue;
} }
paramList.add(getParameterDefinition(parameter, formalSignature)); paramList.add(getParameterDefinition(parameter, formalSignature, ordinalAdjustment));
} }
params = paramList.toArray(new ParameterDefinition[paramList.size()]); params = paramList.toArray(new ParameterDefinition[paramList.size()]);
@@ -117,10 +119,11 @@ public class FunctionDefinitionDataType extends GenericDataType implements Funct
} }
} }
private ParameterDefinition getParameterDefinition(Parameter param, boolean useFormalType) { private ParameterDefinition getParameterDefinition(Parameter param, boolean useFormalType,
int ordinalAdjustment) {
return new ParameterDefinitionImpl(param.getName(), return new ParameterDefinitionImpl(param.getName(),
useFormalType ? param.getFormalDataType() : param.getDataType(), param.getComment(), useFormalType ? param.getFormalDataType() : param.getDataType(), param.getComment(),
param.getOrdinal()); param.getOrdinal() + ordinalAdjustment);
} }
private void init(FunctionSignature sig) { private void init(FunctionSignature sig) {