forked from qt-creator/qt-creator
qmljslocatordata: make access to m_entries threadsafe
Change-Id: I0eb052a98b2240c17dec81974c226b107705c9e4 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -35,6 +35,7 @@
|
|||||||
#include <qmljs/parser/qmljsast_p.h>
|
#include <qmljs/parser/qmljsast_p.h>
|
||||||
|
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
#include <QMutexLocker>
|
||||||
|
|
||||||
using namespace QmlJSTools::Internal;
|
using namespace QmlJSTools::Internal;
|
||||||
using namespace QmlJS;
|
using namespace QmlJS;
|
||||||
@@ -180,17 +181,20 @@ protected:
|
|||||||
|
|
||||||
QHash<QString, QList<LocatorData::Entry> > LocatorData::entries() const
|
QHash<QString, QList<LocatorData::Entry> > LocatorData::entries() const
|
||||||
{
|
{
|
||||||
|
QMutexLocker l(&m_mutex);
|
||||||
return m_entries;
|
return m_entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocatorData::onDocumentUpdated(const QmlJS::Document::Ptr &doc)
|
void LocatorData::onDocumentUpdated(const QmlJS::Document::Ptr &doc)
|
||||||
{
|
{
|
||||||
QList<Entry> entries = FunctionFinder().run(doc);
|
QList<Entry> entries = FunctionFinder().run(doc);
|
||||||
|
QMutexLocker l(&m_mutex);
|
||||||
m_entries.insert(doc->fileName(), entries);
|
m_entries.insert(doc->fileName(), entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocatorData::onAboutToRemoveFiles(const QStringList &files)
|
void LocatorData::onAboutToRemoveFiles(const QStringList &files)
|
||||||
{
|
{
|
||||||
|
QMutexLocker l(&m_mutex);
|
||||||
foreach (const QString &file, files) {
|
foreach (const QString &file, files) {
|
||||||
m_entries.remove(file);
|
m_entries.remove(file);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
|
#include <QMutex>
|
||||||
|
|
||||||
namespace QmlJSTools {
|
namespace QmlJSTools {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@@ -69,6 +70,7 @@ private slots:
|
|||||||
void onAboutToRemoveFiles(const QStringList &files);
|
void onAboutToRemoveFiles(const QStringList &files);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
mutable QMutex m_mutex;
|
||||||
QHash<QString, QList<Entry> > m_entries;
|
QHash<QString, QList<Entry> > m_entries;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user