mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
GP-4634 Refactored Function Compare Service and added action to add
functions to the last comparison window.
This commit is contained in:
parent
c19facf226
commit
ddd2f22c28
45 changed files with 2086 additions and 3015 deletions
|
@ -23,9 +23,9 @@ import org.apache.commons.collections4.IteratorUtils;
|
|||
|
||||
import generic.lsh.vector.*;
|
||||
import ghidra.app.decompiler.DecompileException;
|
||||
import ghidra.app.plugin.core.functioncompare.FunctionComparisonProvider;
|
||||
import ghidra.app.script.GhidraScript;
|
||||
import ghidra.app.services.FunctionComparisonService;
|
||||
import ghidra.app.services.MatchedFunctionComparisonModel;
|
||||
import ghidra.app.tablechooser.*;
|
||||
import ghidra.features.bsim.query.*;
|
||||
import ghidra.features.bsim.query.client.Configuration;
|
||||
|
@ -341,7 +341,7 @@ public class LocalBSimQueryScript extends GhidraScript {
|
|||
class CompareMatchesExecutor implements TableChooserExecutor {
|
||||
|
||||
private FunctionComparisonService compareService;
|
||||
private FunctionComparisonProvider comparisonProvider;
|
||||
private MatchedFunctionComparisonModel model;
|
||||
|
||||
public CompareMatchesExecutor() {
|
||||
compareService = state.getTool().getService(FunctionComparisonService.class);
|
||||
|
@ -355,14 +355,11 @@ public class LocalBSimQueryScript extends GhidraScript {
|
|||
@Override
|
||||
public boolean execute(AddressableRowObject rowObject) {
|
||||
LocalBSimMatch match = (LocalBSimMatch) rowObject;
|
||||
if (comparisonProvider == null) {
|
||||
comparisonProvider =
|
||||
compareService.compareFunctions(match.getSourceFunc(), match.getTargetFunc());
|
||||
}
|
||||
else {
|
||||
compareService.compareFunctions(match.getSourceFunc(), match.getTargetFunc(),
|
||||
comparisonProvider);
|
||||
if (model == null) {
|
||||
model = new MatchedFunctionComparisonModel();
|
||||
compareService.createCustomComparison(model, null);
|
||||
}
|
||||
model.addMatch(match.getSourceFunc(), match.getTargetFunc());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue