aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
index 14f1982b72d..c49a8c5035b 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
@@ -32,9 +32,9 @@
#include <coreplugin/messagebox.h>
#include "pluginmanager/widgetpluginmanager.h"
-
#include <QDebug>
#include <QMessageBox>
+#include <QMutex>
enum {
debug = false
@@ -107,6 +107,7 @@ void MetaInfoPrivate::parseItemLibraryDescriptions()
using QmlDesigner::Internal::MetaInfoPrivate;
MetaInfo MetaInfo::s_global;
+QMutex s_lock;
QStringList MetaInfo::s_pluginDirs;
@@ -157,6 +158,8 @@ ItemLibraryInfo *MetaInfo::itemLibraryInfo() const
*/
MetaInfo MetaInfo::global()
{
+ QMutexLocker locker(&s_lock);
+
if (!s_global.m_p->m_isInitialized) {
s_global.m_p = QSharedPointer<MetaInfoPrivate>(new MetaInfoPrivate(&s_global));
s_global.m_p->initialize();