From 802b67ff04e65d7037e1d483881405753a17a83a Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 7 Oct 2013 11:44:50 +0200 Subject: [PATCH] CppTools: Protect SnapshotUpdater getters by mutex Task-number: QTCREATORBUG-10282 Change-Id: Ia58359f774c72260956caecd5f63d44b612d1451 Reviewed-by: Erik Verbruggen --- src/plugins/cpptools/cppsnapshotupdater.cpp | 22 +++++++++++++++++---- src/plugins/cpptools/cppsnapshotupdater.h | 14 ++++--------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/plugins/cpptools/cppsnapshotupdater.cpp b/src/plugins/cpptools/cppsnapshotupdater.cpp index d9efa592a00..cf4a7cec749 100644 --- a/src/plugins/cpptools/cppsnapshotupdater.cpp +++ b/src/plugins/cpptools/cppsnapshotupdater.cpp @@ -182,28 +182,42 @@ void SnapshotUpdater::update(CppModelManager::WorkingCopy workingCopy) Document::Ptr SnapshotUpdater::document() const { QMutexLocker locker(&m_mutex); - return m_snapshot.document(m_fileInEditor); } +Snapshot SnapshotUpdater::snapshot() const +{ + QMutexLocker locker(&m_mutex); + return m_snapshot; +} + +QStringList SnapshotUpdater::includePaths() const +{ + QMutexLocker locker(&m_mutex); + return m_includePaths; +} + +QStringList SnapshotUpdater::frameworkPaths() const +{ + QMutexLocker locker(&m_mutex); + return m_frameworkPaths; +} + ProjectPart::Ptr SnapshotUpdater::currentProjectPart() const { QMutexLocker locker(&m_mutex); - return m_projectPart; } void SnapshotUpdater::setProjectPart(ProjectPart::Ptr projectPart) { QMutexLocker locker(&m_mutex); - m_manuallySetProjectPart = projectPart; } void SnapshotUpdater::setUsePrecompiledHeaders(bool usePrecompiledHeaders) { QMutexLocker locker(&m_mutex); - m_usePrecompiledHeaders = usePrecompiledHeaders; } diff --git a/src/plugins/cpptools/cppsnapshotupdater.h b/src/plugins/cpptools/cppsnapshotupdater.h index 0d11e0c5865..98564357a76 100644 --- a/src/plugins/cpptools/cppsnapshotupdater.h +++ b/src/plugins/cpptools/cppsnapshotupdater.h @@ -54,15 +54,9 @@ public: void update(CppModelManagerInterface::WorkingCopy workingCopy); CPlusPlus::Document::Ptr document() const; - - CPlusPlus::Snapshot snapshot() const - { return m_snapshot; } - - QStringList includePaths() const - { return m_includePaths; } - - QStringList frameworkPaths() const - { return m_frameworkPaths; } + CPlusPlus::Snapshot snapshot() const; + QStringList includePaths() const; + QStringList frameworkPaths() const; ProjectPart::Ptr currentProjectPart() const; void setProjectPart(ProjectPart::Ptr projectPart); @@ -76,7 +70,7 @@ private: private: mutable QMutex m_mutex; - QString m_fileInEditor; + const QString m_fileInEditor; ProjectPart::Ptr m_projectPart, m_manuallySetProjectPart; QByteArray m_configFile; bool m_editorDefinesChangedSinceLastUpdate;