diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/locationreferences/FunctionDefinitionLocationDescriptor.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/locationreferences/FunctionDefinitionLocationDescriptor.java index 818c9d62a9..0f217cc1fa 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/locationreferences/FunctionDefinitionLocationDescriptor.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/locationreferences/FunctionDefinitionLocationDescriptor.java @@ -40,6 +40,13 @@ public class FunctionDefinitionLocationDescriptor extends GenericDataTypeLocatio protected void doGetReferences(Accumulator accumulator, TaskMonitor monitor) throws CancelledException { + findAppliedFunctionDefinition(accumulator); + + ReferenceUtils.findDataTypeReferences(accumulator, functionDefinition, program, true, + monitor); + } + + private void findAppliedFunctionDefinition(Accumulator accumulator) { DataType myReturnType = functionDefinition.getReturnType(); ParameterDefinition[] myParameters = functionDefinition.getArguments(); @@ -49,15 +56,14 @@ public class FunctionDefinitionLocationDescriptor extends GenericDataTypeLocatio // the definition could be applied in more than one namespace, so handle each application while (symbols.hasNext()) { - Symbol symbol = symbols.next(); - if (!(symbol instanceof FunctionSymbol)) { + Symbol symbol = symbols.next(); + if (!(symbol instanceof FunctionSymbol functionSymbol)) { continue; } - FunctionSymbol functionSymbol = (FunctionSymbol) symbol; + long symbolID = functionSymbol.getID(); Function function = functionManager.getFunction(symbolID); - FunctionSignature signature = function.getSignature(true); ParameterDefinition[] theirParameters = signature.getArguments(); if (!isSameParamters(myParameters, theirParameters)) {