diff options
Diffstat (limited to 'src/plugins/cpptools/cppsnapshotupdater.cpp')
-rw-r--r-- | src/plugins/cpptools/cppsnapshotupdater.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppsnapshotupdater.cpp b/src/plugins/cpptools/cppsnapshotupdater.cpp index a6900d3d2c..a534da4d57 100644 --- a/src/plugins/cpptools/cppsnapshotupdater.cpp +++ b/src/plugins/cpptools/cppsnapshotupdater.cpp @@ -42,6 +42,7 @@ SnapshotUpdater::SnapshotUpdater(const QString &fileInEditor) , m_editorDefinesChangedSinceLastUpdate(false) , m_usePrecompiledHeaders(false) , m_forceSnapshotInvalidation(false) + , m_releaseSourceAndAST(true) { } @@ -161,7 +162,8 @@ void SnapshotUpdater::update(CppModelManager::WorkingCopy workingCopy) newRev = qMax(rev + 1, newRev); doc->setRevision(newRev); modelManager->emitDocumentUpdated(doc); - doc->releaseSourceAndAST(); + if (m_releaseSourceAndAST) + doc->releaseSourceAndAST(); }); Snapshot globalSnapshot = modelManager->snapshot(); globalSnapshot.remove(fileInEditor()); @@ -245,6 +247,12 @@ void SnapshotUpdater::setEditorDefines(const QByteArray &editorDefines) } } +void SnapshotUpdater::setReleaseSourceAndAST(bool onoff) +{ + QMutexLocker locker(&m_mutex); + m_releaseSourceAndAST = onoff; +} + void SnapshotUpdater::updateProjectPart() { if (m_manuallySetProjectPart) { |