summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppsnapshotupdater.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cppsnapshotupdater.cpp')
-rw-r--r--src/plugins/cpptools/cppsnapshotupdater.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppsnapshotupdater.cpp b/src/plugins/cpptools/cppsnapshotupdater.cpp
index 11cd3ff5b3..0a97a98fdf 100644
--- a/src/plugins/cpptools/cppsnapshotupdater.cpp
+++ b/src/plugins/cpptools/cppsnapshotupdater.cpp
@@ -41,6 +41,7 @@ SnapshotUpdater::SnapshotUpdater(const QString &fileInEditor)
, m_fileInEditor(fileInEditor)
, m_editorDefinesChangedSinceLastUpdate(false)
, m_usePrecompiledHeaders(false)
+ , m_forceSnapshotInvalidation(false)
{
}
@@ -62,6 +63,11 @@ void SnapshotUpdater::update(CppModelManager::WorkingCopy workingCopy)
updateProjectPart();
+ if (m_forceSnapshotInvalidation) {
+ invalidateSnapshot = true;
+ m_forceSnapshotInvalidation = false;
+ }
+
if (m_projectPart) {
configFile += m_projectPart->defines;
includePaths = m_projectPart->includePaths;
@@ -186,6 +192,14 @@ void SnapshotUpdater::update(CppModelManager::WorkingCopy workingCopy)
}
}
+void SnapshotUpdater::releaseSnapshot()
+{
+ QMutexLocker locker(&m_mutex);
+ m_snapshot = Snapshot();
+ m_deps = DependencyTable();
+ m_forceSnapshotInvalidation = true;
+}
+
Document::Ptr SnapshotUpdater::document() const
{
QMutexLocker locker(&m_mutex);