mirror of
https://github.com/NationalSecurityAgency/ghidra
synced 2024-08-28 05:20:21 +00:00
GP-2617 corrected decompiler function actions broken by GP-2520
This commit is contained in:
parent
93f43c7d57
commit
da94a0340e
|
@ -236,20 +236,19 @@ public abstract class AbstractDecompilerAction extends DockingAction {
|
|||
* @return the function associated with the current context token or null if none identified.
|
||||
*/
|
||||
protected Function getFunction(DecompilerActionContext context) {
|
||||
|
||||
ClangToken token = context.getTokenAtCursor();
|
||||
if (!(token instanceof ClangFuncNameToken)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Program program = context.getProgram();
|
||||
Function f = DecompilerUtils.getFunction(program, (ClangFuncNameToken) token);
|
||||
if (f == null) {
|
||||
return null;
|
||||
Function f = null;
|
||||
if (token instanceof ClangFuncNameToken) {
|
||||
f = DecompilerUtils.getFunction(context.getProgram(), (ClangFuncNameToken) token);
|
||||
}
|
||||
|
||||
// Ignore default thunks
|
||||
while (f.isThunk() && f.getSymbol().getSource() == SourceType.DEFAULT) {
|
||||
else {
|
||||
HighSymbol highSymbol = findHighSymbolFromToken(token, context.getHighFunction());
|
||||
if (highSymbol instanceof HighFunctionShellSymbol) {
|
||||
f = (Function) highSymbol.getSymbol().getObject();
|
||||
}
|
||||
}
|
||||
while (f != null && f.isThunk() && f.getSymbol().getSource() == SourceType.DEFAULT) {
|
||||
f = f.getThunkedFunction(false);
|
||||
}
|
||||
return f;
|
||||
|
|
Loading…
Reference in a new issue