From 0bd6bcac38586a437a5b5e7b51ff7e6459187cf7 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Sun, 30 Oct 2011 12:14:26 +0000 Subject: [PATCH] Fix crash when creating new project svn path=/trunk/kdenlive/; revision=6003 --- src/clipmanager.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/clipmanager.cpp b/src/clipmanager.cpp index 41df4c83..0a8083a7 100644 --- a/src/clipmanager.cpp +++ b/src/clipmanager.cpp @@ -65,11 +65,11 @@ ClipManager::ClipManager(KdenliveDoc *doc) : ClipManager::~ClipManager() { + m_abortThumb = true; + m_thumbsThread.waitForFinished(); m_thumbsMutex.lock(); m_requestedThumbs.clear(); m_thumbsMutex.unlock(); - m_abortThumb = true; - m_thumbsThread.waitForFinished(); m_audioThumbsQueue.clear(); m_generatingAudioId.clear(); m_thumbsMutex.lock(); @@ -84,11 +84,11 @@ ClipManager::~ClipManager() void ClipManager::clear() { + m_abortThumb = true; + m_thumbsThread.waitForFinished(); m_thumbsMutex.lock(); m_requestedThumbs.clear(); m_thumbsMutex.unlock(); - m_abortThumb = true; - m_thumbsThread.waitForFinished(); m_abortThumb = false; m_folderList.clear(); m_audioThumbsQueue.clear(); @@ -111,7 +111,6 @@ void ClipManager::clearCache() void ClipManager::requestThumbs(const QString id, QList frames) { - kDebug()<<"// Request thbs: "<::const_iterator i = m_requestedThumbs.constBegin(); - while (i != m_requestedThumbs.constEnd() && !m_abortThumb) { - const QString producerId = i.key(); + QMap::iterator i = m_requestedThumbs.begin(); + while (i != m_requestedThumbs.end() && !m_abortThumb) { + QString producerId = i.key(); m_thumbsMutex.lock(); QList values = m_requestedThumbs.values(producerId); - m_requestedThumbs.remove(producerId); + i = m_requestedThumbs.erase(i); m_thumbsMutex.unlock(); qSort(values); DocClipBase *clip = getClipById(producerId); @@ -157,7 +156,6 @@ void ClipManager::slotGetThumbs() m_requestedThumbs.insertMulti(producerId, frame); m_thumbsMutex.unlock(); } - i = m_requestedThumbs.constBegin(); } } -- 2.39.2