mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-20 01:12:06 +08:00
Fixed ConcurrentModificationException when using snapshots in the Byte
Viewer.
This commit is contained in:
+6
-11
@@ -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();
|
||||
|
||||
+3
-3
@@ -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) {
|
||||
|
||||
+6
-11
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user