Fixed ConcurrentModificationException when using snapshots in the Byte

Viewer.
This commit is contained in:
dragonmacher 2023-03-09 17:49:12 -05:00
parent f56e922d43
commit ee1b1f8df5
3 changed files with 15 additions and 25 deletions

View file

@ -15,9 +15,6 @@
*/
package ghidra.app.util.viewer.listingpanel;
import java.util.ArrayList;
import java.util.List;
import javax.swing.Icon;
import ghidra.app.nav.*;
@ -34,8 +31,6 @@ import ghidra.util.UniversalIdGenerator;
class DualListingNavigator implements Navigatable {
private final ListingPanel listingPanel;
private List<NavigatableRemovalListener> listeners =
new ArrayList<>();
private long id;
private GoToService goToService;
@ -55,7 +50,12 @@ class DualListingNavigator implements Navigatable {
@Override
public void addNavigatableListener(NavigatableRemovalListener listener) {
listeners.add(listener);
// not used
}
@Override
public void removeNavigatableListener(NavigatableRemovalListener listener) {
// not used
}
@Override
@ -126,11 +126,6 @@ class DualListingNavigator implements Navigatable {
return true;
}
@Override
public void removeNavigatableListener(NavigatableRemovalListener listener) {
listeners.remove(listener);
}
@Override
public void requestFocus() {
listingPanel.requestFocus();

View file

@ -52,7 +52,7 @@ public class ProgramByteViewerComponentProvider extends ByteViewerComponentProvi
protected DecoratorPanel decorationComponent;
private WeakSet<NavigatableRemovalListener> navigationListeners =
WeakDataStructureFactory.createSingleThreadAccessWeakSet();
WeakDataStructureFactory.createCopyOnWriteWeakSet();
private CloneByteViewerAction cloneByteViewerAction;
@ -564,9 +564,9 @@ public class ProgramByteViewerComponentProvider extends ByteViewerComponentProvi
}
}
protected ByteBlockChangeManager newByteBlockChangeManager(ProgramByteBlockSet blockSet,
protected ByteBlockChangeManager newByteBlockChangeManager(ProgramByteBlockSet blocks,
ByteBlockChangeManager bbcm) {
return new ByteBlockChangeManager(blockSet, bbcm);
return new ByteBlockChangeManager(blocks, bbcm);
}
protected ProgramByteBlockSet newByteBlockSet(ByteBlockChangeManager changeManager) {

View file

@ -15,9 +15,6 @@
*/
package ghidra.feature.vt.gui.duallisting;
import java.util.ArrayList;
import java.util.List;
import javax.swing.Icon;
import ghidra.app.nav.*;
@ -33,8 +30,6 @@ public class VTListingNavigator implements Navigatable {
private final ListingCodeComparisonPanel dualListingPanel;
private final ListingPanel listingPanel;
private List<NavigatableRemovalListener> listeners =
new ArrayList<>();
private long id;
public VTListingNavigator(ListingCodeComparisonPanel dualListingPanel,
@ -47,7 +42,12 @@ public class VTListingNavigator implements Navigatable {
@Override
public void addNavigatableListener(NavigatableRemovalListener listener) {
listeners.add(listener);
// not used
}
@Override
public void removeNavigatableListener(NavigatableRemovalListener listener) {
// not used
}
@Override
@ -121,11 +121,6 @@ public class VTListingNavigator implements Navigatable {
return true;
}
@Override
public void removeNavigatableListener(NavigatableRemovalListener listener) {
listeners.remove(listener);
}
@Override
public void requestFocus() {
listingPanel.requestFocus();