mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-11-03 21:20:31 -05:00 
			
		
		
		
	Set depending objects to nullptr before deleting GUI. Fixes #806
This commit is contained in:
		
							parent
							
								
									451243b381
								
							
						
					
					
						commit
						43059e39b1
					
				@ -525,6 +525,7 @@ ChannelAnalyzerGUI::ChannelAnalyzerGUI(PluginAPI* pluginAPI, DeviceUISet *device
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ChannelAnalyzerGUI::~ChannelAnalyzerGUI()
 | 
					ChannelAnalyzerGUI::~ChannelAnalyzerGUI()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    m_channelAnalyzer->setSampleSink(nullptr);
 | 
				
			||||||
    qDebug("ChannelAnalyzerGUI::~ChannelAnalyzerGUI");
 | 
					    qDebug("ChannelAnalyzerGUI::~ChannelAnalyzerGUI");
 | 
				
			||||||
	ui->glScope->disconnectTimer();
 | 
						ui->glScope->disconnectTimer();
 | 
				
			||||||
	delete ui;
 | 
						delete ui;
 | 
				
			||||||
 | 
				
			|||||||
@ -275,6 +275,9 @@ ATVDemodGUI::ATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, Base
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ATVDemodGUI::~ATVDemodGUI()
 | 
					ATVDemodGUI::~ATVDemodGUI()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    m_atvDemod->setScopeSink(nullptr);
 | 
				
			||||||
 | 
					    m_atvDemod->setTVScreen(nullptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    delete m_scopeVis;
 | 
					    delete m_scopeVis;
 | 
				
			||||||
    delete ui;
 | 
					    delete ui;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -266,6 +266,12 @@ DATVDemodGUI::DATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, Ba
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
DATVDemodGUI::~DATVDemodGUI()
 | 
					DATVDemodGUI::~DATVDemodGUI()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    m_objDATVDemod->SetTVScreen(nullptr);
 | 
				
			||||||
 | 
					    m_objDATVDemod->setMERLabel(nullptr);
 | 
				
			||||||
 | 
					    m_objDATVDemod->setCNRLabel(nullptr);
 | 
				
			||||||
 | 
					    m_objDATVDemod->setMERMeter(nullptr);
 | 
				
			||||||
 | 
					    m_objDATVDemod->setCNRMeter(nullptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    delete ui;
 | 
					    delete ui;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -381,6 +381,7 @@ DSDDemodGUI::DSDDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
DSDDemodGUI::~DSDDemodGUI()
 | 
					DSDDemodGUI::~DSDDemodGUI()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    m_dsdDemod->setScopeXYSink(nullptr);
 | 
				
			||||||
	delete m_scopeVisXY;
 | 
						delete m_scopeVisXY;
 | 
				
			||||||
	delete ui;
 | 
						delete ui;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -55,7 +55,7 @@ DSDDemodSink::DSDDemodSink() :
 | 
				
			|||||||
    m_squelchDelayLine(24000),
 | 
					    m_squelchDelayLine(24000),
 | 
				
			||||||
    m_audioFifo1(48000),
 | 
					    m_audioFifo1(48000),
 | 
				
			||||||
    m_audioFifo2(48000),
 | 
					    m_audioFifo2(48000),
 | 
				
			||||||
    m_scopeXY(0),
 | 
					    m_scopeXY(nullptr),
 | 
				
			||||||
    m_scopeEnabled(true),
 | 
					    m_scopeEnabled(true),
 | 
				
			||||||
    m_dsdDecoder(),
 | 
					    m_dsdDecoder(),
 | 
				
			||||||
    m_signalFormat(signalFormatNone)
 | 
					    m_signalFormat(signalFormatNone)
 | 
				
			||||||
@ -297,7 +297,7 @@ void DSDDemodSink::feed(const SampleVector::const_iterator& begin, const SampleV
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((m_scopeXY != 0) && (m_scopeEnabled))
 | 
					    if ((m_scopeXY != nullptr) && (m_scopeEnabled))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        m_scopeXY->feed(m_scopeSampleBuffer.begin(), m_scopeSampleBuffer.end(), true); // true = real samples for what it's worth
 | 
					        m_scopeXY->feed(m_scopeSampleBuffer.begin(), m_scopeSampleBuffer.end(), true); // true = real samples for what it's worth
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -178,6 +178,8 @@ DemodAnalyzerGUI::DemodAnalyzerGUI(PluginAPI* pluginAPI, FeatureUISet *featureUI
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
DemodAnalyzerGUI::~DemodAnalyzerGUI()
 | 
					DemodAnalyzerGUI::~DemodAnalyzerGUI()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    m_demodAnalyzer->setSampleSink(nullptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	delete ui;
 | 
						delete ui;
 | 
				
			||||||
	delete m_spectrumScopeComboVis;
 | 
						delete m_spectrumScopeComboVis;
 | 
				
			||||||
	delete m_scopeVis;
 | 
						delete m_scopeVis;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user