diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/searchmem/MemSearchPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/searchmem/MemSearchPlugin.java index 19d7b8fde8..86911f59b8 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/searchmem/MemSearchPlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/searchmem/MemSearchPlugin.java @@ -457,10 +457,7 @@ public class MemSearchPlugin extends Plugin implements OptionsChangeListener, searchDialog.setStatusText("Searching..."); - SearchData searchData = info.getSearchData(); - byte[] searchBytes = searchData.getBytes(); - int selectionSize = searchBytes.length == 0 ? 1 : searchBytes.length; - MemSearchTableModel model = new MemSearchTableModel(tool, selectionSize, program, info, + MemSearchTableModel model = new MemSearchTableModel(tool, program, info, getSearchStartAddress(info), navigatable.getSelection()); currentResultsTableProvider = diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/searchmem/MemSearchTableModel.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/searchmem/MemSearchTableModel.java index a941131230..c900e65753 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/searchmem/MemSearchTableModel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/searchmem/MemSearchTableModel.java @@ -34,16 +34,12 @@ public class MemSearchTableModel extends AddressBasedTableModel private Address startAddress; private MemorySearchAlgorithm algorithm; - private int selectionSize = 1; - - MemSearchTableModel(ServiceProvider serviceProvider, int selectionSize, Program program, - SearchInfo searchInfo, Address searchStartAddress, ProgramSelection programSelection) { + MemSearchTableModel(ServiceProvider serviceProvider, Program program, SearchInfo searchInfo, + Address searchStartAddress, ProgramSelection programSelection) { super("Memory Search", serviceProvider, program, null, true); this.searchInfo = searchInfo; this.startAddress = searchStartAddress; this.selection = programSelection; - - this.selectionSize = selectionSize; } public boolean isSortedOnAddress() { @@ -91,14 +87,11 @@ public class MemSearchTableModel extends AddressBasedTableModel @Override public ProgramSelection getProgramSelection(int[] rows) { - if (selectionSize == 1) { - return super.getProgramSelection(rows); - } - - int addOn = selectionSize - 1; AddressSet addressSet = new AddressSet(); - for (int element : rows) { - Address minAddr = getAddress(element); + for (int row : rows) { + MemSearchResult result = getRowObject(row); + int addOn = result.getLength() - 1; + Address minAddr = getAddress(row); Address maxAddr = minAddr; try { maxAddr = minAddr.addNoWrap(addOn);