aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-10-29 19:33:32 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-10-29 19:33:32 +0000
commit9cd41550b6fbe6df342b176278d3c095c1451618 (patch)
treeee26e8493d612d4c88bbed8ace6e75383d2b2940
parent78bce45681e1bcd6e543dd854061fbbf32e40e43 (diff)
downloadqmmp-9cd41550b6fbe6df342b176278d3c095c1451618.tar.gz
qmmp-9cd41550b6fbe6df342b176278d3c095c1451618.tar.bz2
qmmp-9cd41550b6fbe6df342b176278d3c095c1451618.zip
fixed crash when adding multiple directories simultaneously (Closes issue 394)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1966 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/qmmp/metadatamanager.cpp2
-rw-r--r--src/qmmp/metadatamanager.h3
2 files changed, 5 insertions, 0 deletions
diff --git a/src/qmmp/metadatamanager.cpp b/src/qmmp/metadatamanager.cpp
index 667d9bdff..c78426974 100644
--- a/src/qmmp/metadatamanager.cpp
+++ b/src/qmmp/metadatamanager.cpp
@@ -20,6 +20,7 @@
#include <QFile>
#include <QFileInfo>
+#include <QMutexLocker>
#include "decoder.h"
#include "decoderfactory.h"
#include "abstractengine.h"
@@ -47,6 +48,7 @@ MetaDataManager::~MetaDataManager()
QList <FileInfo *> MetaDataManager::createPlayList(const QString &fileName, bool useMetaData) const
{
+ QMutexLocker locker(&m_mutex);
QList <FileInfo *> list;
DecoderFactory *fact = 0;
EngineFactory *efact = 0;
diff --git a/src/qmmp/metadatamanager.h b/src/qmmp/metadatamanager.h
index 5e40894be..09417903e 100644
--- a/src/qmmp/metadatamanager.h
+++ b/src/qmmp/metadatamanager.h
@@ -25,6 +25,7 @@
#include <QStringList>
#include <QPixmap>
#include <QDir>
+#include <QMutex>
#include "fileinfo.h"
#include "metadatamodel.h"
@@ -33,6 +34,7 @@ class EngineFactory;
class InputSourceFactory;
class QmmpSettings;
+
/*! @brief The MetaDataManager class is the base class for metadata access.
* @author Ilya Kotov <forkotov02@hotmail.ru>
*/
@@ -108,6 +110,7 @@ private:
QList <InputSourceFactory *> *m_inputSourceFactories;
QMap <QString, QString> m_cover_cache;
QmmpSettings *m_settings;
+ mutable QMutex m_mutex;
static MetaDataManager* m_instance;
};