mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 02:39:44 +02:00
Fixed ConcurrentModificationException when using snapshots in the Byte
Viewer.
This commit is contained in:
parent
f56e922d43
commit
ee1b1f8df5
3 changed files with 15 additions and 25 deletions
|
@ -15,9 +15,6 @@
|
||||||
*/
|
*/
|
||||||
package ghidra.app.util.viewer.listingpanel;
|
package ghidra.app.util.viewer.listingpanel;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
|
|
||||||
import ghidra.app.nav.*;
|
import ghidra.app.nav.*;
|
||||||
|
@ -34,8 +31,6 @@ import ghidra.util.UniversalIdGenerator;
|
||||||
class DualListingNavigator implements Navigatable {
|
class DualListingNavigator implements Navigatable {
|
||||||
|
|
||||||
private final ListingPanel listingPanel;
|
private final ListingPanel listingPanel;
|
||||||
private List<NavigatableRemovalListener> listeners =
|
|
||||||
new ArrayList<>();
|
|
||||||
private long id;
|
private long id;
|
||||||
private GoToService goToService;
|
private GoToService goToService;
|
||||||
|
|
||||||
|
@ -55,7 +50,12 @@ class DualListingNavigator implements Navigatable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addNavigatableListener(NavigatableRemovalListener listener) {
|
public void addNavigatableListener(NavigatableRemovalListener listener) {
|
||||||
listeners.add(listener);
|
// not used
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeNavigatableListener(NavigatableRemovalListener listener) {
|
||||||
|
// not used
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -126,11 +126,6 @@ class DualListingNavigator implements Navigatable {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeNavigatableListener(NavigatableRemovalListener listener) {
|
|
||||||
listeners.remove(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void requestFocus() {
|
public void requestFocus() {
|
||||||
listingPanel.requestFocus();
|
listingPanel.requestFocus();
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class ProgramByteViewerComponentProvider extends ByteViewerComponentProvi
|
||||||
|
|
||||||
protected DecoratorPanel decorationComponent;
|
protected DecoratorPanel decorationComponent;
|
||||||
private WeakSet<NavigatableRemovalListener> navigationListeners =
|
private WeakSet<NavigatableRemovalListener> navigationListeners =
|
||||||
WeakDataStructureFactory.createSingleThreadAccessWeakSet();
|
WeakDataStructureFactory.createCopyOnWriteWeakSet();
|
||||||
|
|
||||||
private CloneByteViewerAction cloneByteViewerAction;
|
private CloneByteViewerAction cloneByteViewerAction;
|
||||||
|
|
||||||
|
@ -564,9 +564,9 @@ public class ProgramByteViewerComponentProvider extends ByteViewerComponentProvi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ByteBlockChangeManager newByteBlockChangeManager(ProgramByteBlockSet blockSet,
|
protected ByteBlockChangeManager newByteBlockChangeManager(ProgramByteBlockSet blocks,
|
||||||
ByteBlockChangeManager bbcm) {
|
ByteBlockChangeManager bbcm) {
|
||||||
return new ByteBlockChangeManager(blockSet, bbcm);
|
return new ByteBlockChangeManager(blocks, bbcm);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ProgramByteBlockSet newByteBlockSet(ByteBlockChangeManager changeManager) {
|
protected ProgramByteBlockSet newByteBlockSet(ByteBlockChangeManager changeManager) {
|
||||||
|
|
|
@ -15,9 +15,6 @@
|
||||||
*/
|
*/
|
||||||
package ghidra.feature.vt.gui.duallisting;
|
package ghidra.feature.vt.gui.duallisting;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
|
|
||||||
import ghidra.app.nav.*;
|
import ghidra.app.nav.*;
|
||||||
|
@ -33,8 +30,6 @@ public class VTListingNavigator implements Navigatable {
|
||||||
|
|
||||||
private final ListingCodeComparisonPanel dualListingPanel;
|
private final ListingCodeComparisonPanel dualListingPanel;
|
||||||
private final ListingPanel listingPanel;
|
private final ListingPanel listingPanel;
|
||||||
private List<NavigatableRemovalListener> listeners =
|
|
||||||
new ArrayList<>();
|
|
||||||
private long id;
|
private long id;
|
||||||
|
|
||||||
public VTListingNavigator(ListingCodeComparisonPanel dualListingPanel,
|
public VTListingNavigator(ListingCodeComparisonPanel dualListingPanel,
|
||||||
|
@ -47,7 +42,12 @@ public class VTListingNavigator implements Navigatable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addNavigatableListener(NavigatableRemovalListener listener) {
|
public void addNavigatableListener(NavigatableRemovalListener listener) {
|
||||||
listeners.add(listener);
|
// not used
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeNavigatableListener(NavigatableRemovalListener listener) {
|
||||||
|
// not used
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -121,11 +121,6 @@ public class VTListingNavigator implements Navigatable {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeNavigatableListener(NavigatableRemovalListener listener) {
|
|
||||||
listeners.remove(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void requestFocus() {
|
public void requestFocus() {
|
||||||
listingPanel.requestFocus();
|
listingPanel.requestFocus();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue