Merge remote-tracking branch 'origin/Ghidra_11.1'

This commit is contained in:
Ryan Kurtz 2024-05-16 13:52:48 -04:00
commit 0412b81b88
3 changed files with 9 additions and 7 deletions

View file

@ -282,4 +282,9 @@ public class FunctionComparisonProvider extends ComponentProviderAdapter
public void setCloseListener(Callback closeListener) { public void setCloseListener(Callback closeListener) {
this.closeListener = Callback.dummyIfNull(closeListener); this.closeListener = Callback.dummyIfNull(closeListener);
} }
public void dispose() {
functionComparisonPanel.dispose();
}
} }

View file

@ -20,10 +20,7 @@ import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.CopyOnWriteArraySet;
import docking.ComponentProviderActivationListener; import docking.ComponentProviderActivationListener;
import ghidra.framework.model.DomainObjectChangeRecord; import ghidra.framework.model.*;
import ghidra.framework.model.DomainObjectChangedEvent;
import ghidra.framework.model.DomainObjectEvent;
import ghidra.framework.model.EventType;
import ghidra.program.model.listing.Function; import ghidra.program.model.listing.Function;
import ghidra.program.model.listing.Program; import ghidra.program.model.listing.Program;
@ -53,6 +50,7 @@ public class FunctionComparisonProviderManager implements FunctionComparisonProv
@Override @Override
public void providerClosed(FunctionComparisonProvider provider) { public void providerClosed(FunctionComparisonProvider provider) {
providers.remove(provider); providers.remove(provider);
provider.dispose();
listeners.stream().forEach(l -> l.componentProviderDeactivated(provider)); listeners.stream().forEach(l -> l.componentProviderDeactivated(provider));
} }
@ -217,9 +215,7 @@ public class FunctionComparisonProviderManager implements FunctionComparisonProv
*/ */
public void dispose() { public void dispose() {
for (FunctionComparisonProvider provider : providers) { for (FunctionComparisonProvider provider : providers) {
FunctionComparisonPanel panel = provider.getComponent(); provider.dispose();
panel.setVisible(false);
panel.dispose();
} }
providers.clear(); providers.clear();
} }

View file

@ -445,6 +445,7 @@ public abstract class DecompilerCodeComparisonPanel<T extends DualDecompilerFiel
@Override @Override
public void dispose() { public void dispose() {
removeProgramListeners();
setFieldPanelCoordinator(null); setFieldPanelCoordinator(null);
cPanels[LEFT].dispose(); cPanels[LEFT].dispose();
cPanels[RIGHT].dispose(); cPanels[RIGHT].dispose();