diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-06-17 12:15:54 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-06-17 12:15:54 +0000 |
| commit | bdc1755bc730e3b0e9553be7d0b04cf3db6d69ff (patch) | |
| tree | 80f1b491e39b4a5777cd52d48671ffe8647a579e | |
| parent | d4f1dfb9db563e266387c71b77024302f2732677 (diff) | |
| download | qmmp-bdc1755bc730e3b0e9553be7d0b04cf3db6d69ff.tar.gz qmmp-bdc1755bc730e3b0e9553be7d0b04cf3db6d69ff.tar.bz2 qmmp-bdc1755bc730e3b0e9553be7d0b04cf3db6d69ff.zip | |
fixed critical bug which causes crash
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@426 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/qmmp/output.cpp | 10 | ||||
| -rw-r--r-- | src/ui/mainvisual.cpp | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/qmmp/output.cpp b/src/qmmp/output.cpp index a7ae2d8ed..bf08da376 100644 --- a/src/qmmp/output.cpp +++ b/src/qmmp/output.cpp @@ -139,12 +139,15 @@ Output::Output (QObject* parent) : QThread (parent), r (stackSize()) Output::~Output() { qDebug("Output::~Output()"); - Visual *visual = 0; - foreach(visual, m_vis_map.values ()) + foreach(Visual *visual, m_vis_map.values ()) { + visual->setOutput(0); visual->close(); } - //m_vis_map.clear(); + foreach (Visual *visual , visuals) //external + { + visual->setOutput(0); + } } void Output::error ( const QString &e ) @@ -165,6 +168,7 @@ void Output::addVisual ( Visual *v ) void Output::removeVisual (Visual *v) { + v->setOutput(0); visuals.removeAll (v); if (m_vis_map.key(v)) { diff --git a/src/ui/mainvisual.cpp b/src/ui/mainvisual.cpp index b52bcc0ce..61807bf11 100644 --- a/src/ui/mainvisual.cpp +++ b/src/ui/mainvisual.cpp @@ -166,7 +166,7 @@ void MainVisual::timeout() update(); m_draw = TRUE; } - else if (m_draw && output() && !output()->isRunning()) + else if (m_draw && (!output() || !output()->isRunning())) { m_draw = FALSE; m_pixmap = m_bg; |
