aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-09-09 16:19:23 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-09-09 16:19:23 +0000
commita33a3f311fabe069f98aa2f688dfa22dfee27f81 (patch)
tree98fd6eef40ad05e2d58099bab8a0b07f7de600e5 /src
parentfce3036757a1d5cd213c5eab69efd28dbffbe8e8 (diff)
downloadqmmp-a33a3f311fabe069f98aa2f688dfa22dfee27f81.tar.gz
qmmp-a33a3f311fabe069f98aa2f688dfa22dfee27f81.tar.bz2
qmmp-a33a3f311fabe069f98aa2f688dfa22dfee27f81.zip
fixed race condition
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3702 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/qmmp/qmmpaudioengine.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/qmmp/qmmpaudioengine.cpp b/src/qmmp/qmmpaudioengine.cpp
index e6196f89d..404dd033e 100644
--- a/src/qmmp/qmmpaudioengine.cpp
+++ b/src/qmmp/qmmpaudioengine.cpp
@@ -84,8 +84,10 @@ void QmmpAudioEngine::clearDecoders()
if(m_decoder)
{
m_inputs.take(m_decoder)->deleteLater ();
- delete m_decoder;
+ Decoder *d = m_decoder;
m_decoder = 0;
+ delete d;
+
}
while(!m_decoders.isEmpty())
{
@@ -414,8 +416,9 @@ void QmmpAudioEngine::run()
else if(!m_decoders.isEmpty())
{
m_inputs.take(m_decoder)->deleteLater ();
- delete m_decoder;
+ Decoder *d = m_decoder;
m_decoder = m_decoders.dequeue();
+ delete d;
//m_seekTime = m_inputs.value(m_decoder)->offset();
m_replayGain->setReplayGainInfo(m_decoder->replayGainInfo());
//use current output if possible