SoundIO- fixed up crashes when device cannot be opened. (#3238)
* SoundIO- fixed up crashes when device cannot be opened. * SoundIO - reset soundio pointer after destroy.
This commit is contained in:
committed by
Tres Finocchiaro
parent
72ffc98be6
commit
54d0922cea
@@ -46,6 +46,7 @@ AudioSoundIo::AudioSoundIo( bool & outSuccessful, Mixer * _mixer ) :
|
||||
outSuccessful = false;
|
||||
m_soundio = NULL;
|
||||
m_outstream = NULL;
|
||||
m_outBuf = NULL;
|
||||
m_disconnectErr = 0;
|
||||
m_outBufFrameIndex = 0;
|
||||
m_outBufFramesTotal = 0;
|
||||
@@ -195,7 +196,11 @@ void AudioSoundIo::onBackendDisconnect(int err)
|
||||
AudioSoundIo::~AudioSoundIo()
|
||||
{
|
||||
stopProcessing();
|
||||
soundio_destroy(m_soundio);
|
||||
if (m_soundio)
|
||||
{
|
||||
soundio_destroy(m_soundio);
|
||||
m_soundio = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void AudioSoundIo::startProcessing()
|
||||
@@ -215,11 +220,17 @@ void AudioSoundIo::startProcessing()
|
||||
|
||||
void AudioSoundIo::stopProcessing()
|
||||
{
|
||||
soundio_outstream_destroy(m_outstream);
|
||||
m_outstream = NULL;
|
||||
if (m_outstream)
|
||||
{
|
||||
soundio_outstream_destroy(m_outstream);
|
||||
m_outstream = NULL;
|
||||
}
|
||||
|
||||
delete[] m_outBuf;
|
||||
m_outBuf = NULL;
|
||||
if (m_outBuf)
|
||||
{
|
||||
delete[] m_outBuf;
|
||||
m_outBuf = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void AudioSoundIo::errorCallback(int err)
|
||||
@@ -440,7 +451,11 @@ AudioSoundIo::setupWidget::~setupWidget()
|
||||
{
|
||||
bool ok = disconnect( &m_backendModel, SIGNAL( dataChanged() ), &m_setupUtil, SLOT( reconnectSoundIo() ) );
|
||||
assert(ok);
|
||||
soundio_destroy(m_soundio);
|
||||
if (m_soundio)
|
||||
{
|
||||
soundio_destroy(m_soundio);
|
||||
m_soundio = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void AudioSoundIo::setupWidget::saveSettings()
|
||||
|
||||
Reference in New Issue
Block a user