mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 16:47:31 -05:00
#1210 Resolves issue of tuner instances can't be garbage collected due to retained references. Updates several of the tuner controller and tuner editor classes to add/invoke dispose() methods to clear retained instance references. (#1216)
Co-authored-by: Denny Sheirer <sheirerd@ainfosec.com>
This commit is contained in:
@@ -99,6 +99,8 @@ public class DiscoveredTunerEditor extends Editor<DiscoveredTuner> implements ID
|
||||
|
||||
super.setItem(tuner);
|
||||
|
||||
mEditorScroller.remove(mEditor);
|
||||
|
||||
if(hasItem())
|
||||
{
|
||||
mEditor = TunerFactory.getEditor(mUserPreferences, getItem(), mTunerManager);
|
||||
|
||||
@@ -116,7 +116,7 @@ public abstract class TunerEditor<T extends Tuner,C extends TunerConfiguration>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**r
|
||||
* Indicates if the controls are currently being loaded with values.
|
||||
*/
|
||||
protected boolean isLoading()
|
||||
@@ -337,7 +337,7 @@ public abstract class TunerEditor<T extends Tuner,C extends TunerConfiguration>
|
||||
if(mEnabledButton == null)
|
||||
{
|
||||
mEnabledButton = new JButton(BUTTON_STATUS_ENABLE);
|
||||
mEnabledButton.setToolTipText("Enable or disable the tuner for use by sdrtrunk, or attempt to reset a tuner error");
|
||||
mEnabledButton.setToolTipText("Enable or disable the tuner for use by sdrtrunk");
|
||||
mEnabledButton.addActionListener(e ->
|
||||
{
|
||||
switch(getEnabledButton().getText())
|
||||
@@ -493,6 +493,11 @@ public abstract class TunerEditor<T extends Tuner,C extends TunerConfiguration>
|
||||
*/
|
||||
public void dispose()
|
||||
{
|
||||
turnOffRecorder();
|
||||
|
||||
getFrequencyControl().clearListeners();
|
||||
getFrequencyCorrectionSpinner().removeChangeListener(mFrequencyAndCorrectionChangeListener);
|
||||
|
||||
if(mDiscoveredTuner != null)
|
||||
{
|
||||
mDiscoveredTuner.removeTunerStatusListener(this);
|
||||
@@ -501,9 +506,12 @@ public abstract class TunerEditor<T extends Tuner,C extends TunerConfiguration>
|
||||
{
|
||||
mDiscoveredTuner.getTuner().removeTunerEventListener(this);
|
||||
}
|
||||
|
||||
mDiscoveredTuner = null;
|
||||
}
|
||||
|
||||
turnOffRecorder();
|
||||
mUserPreferences = null;
|
||||
mTunerManager = null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user