[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdevelop] languages/clang: Need to reset the document tracker during ParseJob run
From:       Olivier JG <olivier.jg () gmail ! com>
Date:       2015-10-08 15:25:42
Message-ID: E1ZkD4g-00026N-3x () scm ! kde ! org
[Download RAW message or body]

Git commit 74771372c4c1b005bb877404a0878a864a4a67c6 by Olivier JG.
Committed on 08/10/2015 at 15:29.
Pushed by olivierjg into branch 'master'.

Need to reset the document tracker during ParseJob run

This will lock the revision and reset the needsUpdate flag in the
tracker.

M  +6    -2    languages/clang/clangparsejob.cpp

http://commits.kde.org/kdevelop/74771372c4c1b005bb877404a0878a864a4a67c6

diff --git a/languages/clang/clangparsejob.cpp b/languages/clang/clangparsejob.cpp
index e9ef4f1..48afb5f 100644
--- a/languages/clang/clangparsejob.cpp
+++ b/languages/clang/clangparsejob.cpp
@@ -151,7 +151,7 @@ ClangParsingEnvironmentFile* parsingEnvironmentFile(const \
                TopDUContext* context)
     return dynamic_cast<ClangParsingEnvironmentFile*>(context->parsingEnvironmentFile().data());
  }
 
-bool hasTracker(const IndexedString& url)
+DocumentChangeTracker* trackerForUrl(const IndexedString& url)
 {
     return ICore::self()->languageController()->backgroundParser()->trackerForUrl(url);
  }
@@ -198,6 +198,10 @@ ClangParseJob::ClangParseJob(const IndexedString& url, \
ILanguageSupport* languag  const IndexedString indexedUrl(textDocument->url());
         m_unsavedRevisions.insert(indexedUrl, \
ModificationRevision::revisionForFile(indexedUrl));  }
+
+    if (auto tracker = trackerForUrl(url)) {
+        tracker->reset();
+    }
 }
 
 ClangSupport* ClangParseJob::clang() const
@@ -329,7 +333,7 @@ void ClangParseJob::run(ThreadWeaver::JobPointer /*self*/, \
ThreadWeaver::Thread  file->setModificationRevision(it.value());
             }
         }
-        if (::hasTracker(context->url())) {
+        if (trackerForUrl(context->url())) {
             if (clang()->index()->translationUnitForUrl(context->url()) == \
                m_environment.translationUnitUrl()) {
                 // cache the parse session and the contained translation unit for \
                this chain
                 // this then allows us to quickly reparse the document if it is \
changed by


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic