mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-07 09:11:15 -09:00
GP-5673: Fix hang at launch caused by repeated filtering of registers table.
This commit is contained in:
@@ -1262,22 +1262,26 @@ public class DebuggerRegistersProvider extends ComponentProviderAdapter
|
||||
|
||||
protected void displaySelectedRegisters(Set<Register> selected) {
|
||||
List<Register> regs = current.getPlatform().getLanguage().getRegisters();
|
||||
List<RegisterRow> toDelete = new ArrayList<>();
|
||||
for (Iterator<Entry<Register, RegisterRow>> it = regMap.entrySet().iterator(); it
|
||||
.hasNext();) {
|
||||
Map.Entry<Register, RegisterRow> ent = it.next();
|
||||
if (!selected.contains(ent.getKey())) {
|
||||
regsTableModel.delete(ent.getValue());
|
||||
toDelete.add(ent.getValue());
|
||||
it.remove();
|
||||
}
|
||||
}
|
||||
regsTableModel.deleteWith(toDelete::contains);
|
||||
|
||||
List<RegisterRow> toAdd = new ArrayList<>();
|
||||
for (Register reg : selected) {
|
||||
regMap.computeIfAbsent(reg, r -> {
|
||||
RegisterRow row = new RegisterRow(this, regs.indexOf(reg), reg);
|
||||
regsTableModel.add(row);
|
||||
toAdd.add(row);
|
||||
return row;
|
||||
});
|
||||
}
|
||||
regsTableModel.addAll(toAdd);
|
||||
}
|
||||
|
||||
protected CompletableFuture<Void> loadRegistersAndValues() {
|
||||
|
||||
Reference in New Issue
Block a user