From 3e8f5a28da668b89a3f782ec26e31e10ff8aa726 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sat, 16 Oct 2010 07:21:24 +0000 Subject: fixed crash inside sound core git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1938 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmp/soundcore.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/qmmp/soundcore.cpp b/src/qmmp/soundcore.cpp index 4f551a04f..b0dd90cdd 100644 --- a/src/qmmp/soundcore.cpp +++ b/src/qmmp/soundcore.cpp @@ -78,6 +78,14 @@ bool SoundCore::play(const QString &source, bool queue, qint64 offset) stop(); qApp->processEvents(QEventLoop::ExcludeUserInputEvents); } + else + { + qDeleteAll(m_pendingSources); + m_pendingSources.clear(); + if(m_pendingEngine) + delete m_pendingEngine; + m_pendingEngine = 0; + } MetaDataManager::instance(); //create metadata manager InputSource *s = InputSource::create(source, this); @@ -100,13 +108,13 @@ bool SoundCore::play(const QString &source, bool queue, qint64 offset) void SoundCore::stop() { m_url.clear(); + if(m_pendingEngine) + delete m_pendingEngine; + m_pendingEngine = 0; if(m_engine) m_engine->stop(); qDeleteAll(m_pendingSources); m_pendingSources.clear(); - if(m_pendingEngine) - delete m_pendingEngine; - m_pendingEngine = 0; updateVolume(); if(state() == Qmmp::NormalError || state() == Qmmp::FatalError || state() == Qmmp::Buffering) StateHandler::instance()->dispatch(Qmmp::Stopped); //clear error and buffering state -- cgit v1.2.3-13-gbd6f