mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 19:42:36 +02:00
GT-2848: Refactor DependencyGraph with Deterministic version
This commit is contained in:
parent
dace9682fb
commit
fa558af9c2
11 changed files with 744 additions and 343 deletions
|
@ -37,7 +37,7 @@ import ghidra.program.model.util.AcyclicCallGraphBuilder;
|
|||
import ghidra.util.Msg;
|
||||
import ghidra.util.exception.CancelledException;
|
||||
import ghidra.util.exception.InvalidInputException;
|
||||
import ghidra.util.graph.DependencyGraph;
|
||||
import ghidra.util.graph.AbstractDependencyGraph;
|
||||
import ghidra.util.task.TaskMonitor;
|
||||
|
||||
public class DecompilerParameterIdCmd extends BackgroundCommand {
|
||||
|
@ -74,7 +74,7 @@ public class DecompilerParameterIdCmd extends BackgroundCommand {
|
|||
monitor.setMessage("Analyzing Call Hierarchy...");
|
||||
AcyclicCallGraphBuilder builder =
|
||||
new AcyclicCallGraphBuilder(program, entryPoints, true);
|
||||
DependencyGraph<Address> graph = builder.getDependencyGraph(monitor);
|
||||
AbstractDependencyGraph<Address> graph = builder.getDependencyGraph(monitor);
|
||||
if (graph.isEmpty()) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ import ghidra.program.model.symbol.SourceType;
|
|||
import ghidra.program.model.util.AcyclicCallGraphBuilder;
|
||||
import ghidra.util.Msg;
|
||||
import ghidra.util.exception.CancelledException;
|
||||
import ghidra.util.graph.DependencyGraph;
|
||||
import ghidra.util.graph.AbstractDependencyGraph;
|
||||
import ghidra.util.task.TaskMonitor;
|
||||
|
||||
public class DecompilerCallConventionAnalyzer extends AbstractAnalyzer {
|
||||
|
@ -138,7 +138,7 @@ public class DecompilerCallConventionAnalyzer extends AbstractAnalyzer {
|
|||
monitor.setMessage("Analyzing Call Hierarchy...");
|
||||
AcyclicCallGraphBuilder builder =
|
||||
new AcyclicCallGraphBuilder(program, functionEntries, true);
|
||||
DependencyGraph<Address> graph = builder.getDependencyGraph(monitor);
|
||||
AbstractDependencyGraph<Address> graph = builder.getDependencyGraph(monitor);
|
||||
if (graph.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue