diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-09-09 16:19:23 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-09-09 16:19:23 +0000 |
| commit | a33a3f311fabe069f98aa2f688dfa22dfee27f81 (patch) | |
| tree | 98fd6eef40ad05e2d58099bab8a0b07f7de600e5 /src | |
| parent | fce3036757a1d5cd213c5eab69efd28dbffbe8e8 (diff) | |
| download | qmmp-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.cpp | 7 |
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 |
