From b3c9eec8f941a87a9c350b59648c5c470f90107e Mon Sep 17 00:00:00 2001 From: James <49045138+ghidracadabra@users.noreply.github.com> Date: Tue, 23 Jul 2024 20:39:28 +0000 Subject: [PATCH] GP-4792 adjust call convention analyzer --- .../analysis/DecompilerCallConventionAnalyzer.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Ghidra/Features/Decompiler/src/main/java/ghidra/app/plugin/core/analysis/DecompilerCallConventionAnalyzer.java b/Ghidra/Features/Decompiler/src/main/java/ghidra/app/plugin/core/analysis/DecompilerCallConventionAnalyzer.java index e70046a3d3..b7adb9d8fe 100644 --- a/Ghidra/Features/Decompiler/src/main/java/ghidra/app/plugin/core/analysis/DecompilerCallConventionAnalyzer.java +++ b/Ghidra/Features/Decompiler/src/main/java/ghidra/app/plugin/core/analysis/DecompilerCallConventionAnalyzer.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -216,7 +216,7 @@ public class DecompilerCallConventionAnalyzer extends AbstractAnalyzer { continue; } - if (hasImportedSignatureWithinNamespace(function) || + if (hasNonDefaultSignatureWithinNamespace(function) || hasDefinedParameterTypes(function)) { functionEntries.add(function.getEntryPoint()); } @@ -225,8 +225,8 @@ public class DecompilerCallConventionAnalyzer extends AbstractAnalyzer { return functionEntries; } - private boolean hasImportedSignatureWithinNamespace(Function function) { - return function.getSignatureSource() == SourceType.IMPORTED && + private boolean hasNonDefaultSignatureWithinNamespace(Function function) { + return function.getSignatureSource() != SourceType.DEFAULT && function.getParentNamespace().getID() != Namespace.GLOBAL_NAMESPACE_ID; }