qmljslocatordata: make access to m_entries threadsafe

Change-Id: I0eb052a98b2240c17dec81974c226b107705c9e4
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Fawzi Mohamed
2014-09-19 13:57:20 +02:00
parent de70de2246
commit d0e6da689b
2 changed files with 6 additions and 0 deletions

View File

@@ -35,6 +35,7 @@
#include <qmljs/parser/qmljsast_p.h>
#include <QFileInfo>
#include <QMutexLocker>
using namespace QmlJSTools::Internal;
using namespace QmlJS;
@@ -180,17 +181,20 @@ protected:
QHash<QString, QList<LocatorData::Entry> > LocatorData::entries() const
{
QMutexLocker l(&m_mutex);
return m_entries;
}
void LocatorData::onDocumentUpdated(const QmlJS::Document::Ptr &doc)
{
QList<Entry> entries = FunctionFinder().run(doc);
QMutexLocker l(&m_mutex);
m_entries.insert(doc->fileName(), entries);
}
void LocatorData::onAboutToRemoveFiles(const QStringList &files)
{
QMutexLocker l(&m_mutex);
foreach (const QString &file, files) {
m_entries.remove(file);
}

View File

@@ -34,6 +34,7 @@
#include <QObject>
#include <QHash>
#include <QMutex>
namespace QmlJSTools {
namespace Internal {
@@ -69,6 +70,7 @@ private slots:
void onAboutToRemoveFiles(const QStringList &files);
private:
mutable QMutex m_mutex;
QHash<QString, QList<Entry> > m_entries;
};