mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-31 16:08:27 +08:00
GP-6480 correct addressrangetable refresh
This commit is contained in:
+10
-11
@@ -20,6 +20,7 @@ import java.util.stream.StreamSupport;
|
|||||||
import docking.widgets.table.AbstractDynamicTableColumn;
|
import docking.widgets.table.AbstractDynamicTableColumn;
|
||||||
import docking.widgets.table.TableColumnDescriptor;
|
import docking.widgets.table.TableColumnDescriptor;
|
||||||
import ghidra.docking.settings.Settings;
|
import ghidra.docking.settings.Settings;
|
||||||
|
import ghidra.framework.options.ToolOptions;
|
||||||
import ghidra.framework.plugintool.PluginTool;
|
import ghidra.framework.plugintool.PluginTool;
|
||||||
import ghidra.framework.plugintool.ServiceProvider;
|
import ghidra.framework.plugintool.ServiceProvider;
|
||||||
import ghidra.program.model.address.*;
|
import ghidra.program.model.address.*;
|
||||||
@@ -43,20 +44,23 @@ public class AddressRangeTableModel extends GhidraProgramTableModel<AddressRange
|
|||||||
private static final int MAX_ADDRESS_COLUMN_INDEX = 1;
|
private static final int MAX_ADDRESS_COLUMN_INDEX = 1;
|
||||||
|
|
||||||
private ProgramSelection selection;
|
private ProgramSelection selection;
|
||||||
private int resultsLimit;
|
private PluginTool tool;
|
||||||
private long minLength;
|
|
||||||
|
|
||||||
protected AddressRangeTableModel(PluginTool tool, Program program, ProgramSelection selection,
|
protected AddressRangeTableModel(PluginTool tool, Program program, ProgramSelection selection) {
|
||||||
int resultsLimit, long minLength) {
|
|
||||||
super("Selected Ranges in " + program.getName(), tool, program, null);
|
super("Selected Ranges in " + program.getName(), tool, program, null);
|
||||||
this.selection = selection;
|
this.selection = selection;
|
||||||
this.resultsLimit = resultsLimit;
|
this.tool = tool;
|
||||||
this.minLength = minLength;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doLoad(Accumulator<AddressRangeInfo> accumulator, TaskMonitor monitor)
|
protected void doLoad(Accumulator<AddressRangeInfo> accumulator, TaskMonitor monitor)
|
||||||
throws CancelledException {
|
throws CancelledException {
|
||||||
|
ToolOptions options = tool.getOptions(CodeBrowserSelectionPlugin.OPTION_CATEGORY_NAME);
|
||||||
|
int resultsLimit = options.getInt(CodeBrowserSelectionPlugin.RANGES_LIMIT_OPTION_NAME,
|
||||||
|
CodeBrowserSelectionPlugin.RANGES_LIMIT_DEFAULT);
|
||||||
|
long minLength = options.getLong(CodeBrowserSelectionPlugin.MIN_RANGE_SIZE_OPTION_NAME,
|
||||||
|
CodeBrowserSelectionPlugin.MIN_RANGE_SIZE_DEFAULT);
|
||||||
|
|
||||||
AddressRangeIterator rangeIter = selection.getAddressRanges();
|
AddressRangeIterator rangeIter = selection.getAddressRanges();
|
||||||
ReferenceManager refManager = program.getReferenceManager();
|
ReferenceManager refManager = program.getReferenceManager();
|
||||||
while (rangeIter.hasNext()) {
|
while (rangeIter.hasNext()) {
|
||||||
@@ -103,11 +107,6 @@ public class AddressRangeTableModel extends GhidraProgramTableModel<AddressRange
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void refresh() {
|
|
||||||
reload();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected TableColumnDescriptor<AddressRangeInfo> createTableColumnDescriptor() {
|
protected TableColumnDescriptor<AddressRangeInfo> createTableColumnDescriptor() {
|
||||||
TableColumnDescriptor<AddressRangeInfo> descriptor = new TableColumnDescriptor<>();
|
TableColumnDescriptor<AddressRangeInfo> descriptor = new TableColumnDescriptor<>();
|
||||||
|
|||||||
+2
-5
@@ -151,11 +151,8 @@ public class CodeBrowserSelectionPlugin extends Plugin {
|
|||||||
tool.setStatusInfo("Unable to create selected ranges table: no addresses in selection");
|
tool.setStatusInfo("Unable to create selected ranges table: no addresses in selection");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ToolOptions options = tool.getOptions(OPTION_CATEGORY_NAME);
|
|
||||||
int resultsLimit = options.getInt(RANGES_LIMIT_OPTION_NAME, RANGES_LIMIT_DEFAULT);
|
AddressRangeTableModel model = new AddressRangeTableModel(tool, program, selection);
|
||||||
long minLength = options.getLong(MIN_RANGE_SIZE_OPTION_NAME, MIN_RANGE_SIZE_DEFAULT);
|
|
||||||
AddressRangeTableModel model =
|
|
||||||
new AddressRangeTableModel(tool, program, selection, resultsLimit, minLength);
|
|
||||||
Icon markerIcon = new GIcon("icon.plugin.codebrowser.cursor.marker");
|
Icon markerIcon = new GIcon("icon.plugin.codebrowser.cursor.marker");
|
||||||
String title = "Selected Ranges in " + program.getName();
|
String title = "Selected Ranges in " + program.getName();
|
||||||
TableComponentProvider<AddressRangeInfo> tableProvider =
|
TableComponentProvider<AddressRangeInfo> tableProvider =
|
||||||
|
|||||||
Reference in New Issue
Block a user