diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/CoalescingAddRemoveStrategy.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/CoalescingAddRemoveStrategy.java index 31ed1cf671..f765c8ecac 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/CoalescingAddRemoveStrategy.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/CoalescingAddRemoveStrategy.java @@ -259,9 +259,10 @@ public class CoalescingAddRemoveStrategy implements TableAddRemoveStrategy return data; } - // Copy to a new list those items that are not marked for removal. This saves a list move - // time a remove takes place - List newList = new ArrayList<>(data.size() - toRemove.size()); + // Copy to a new list those items that are not marked for removal. This saves a potential + // list move operation every time a remove takes place. + // Note: sometimes the items passed here in the toRemove set may not actually be in the data + List newList = new ArrayList<>(); for (int i = 0; i < data.size(); i++) { if (monitor.isCancelled()) { return newList;