diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2014-06-27 10:38:42 -0400 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2014-07-03 14:56:31 +0200 |
commit | 919f26a488c76afea081d1d11948f30a6f90a1b3 (patch) | |
tree | 3180029502cd721df9ccc847975e5ff40a654d76 /src/plugins/todo/cpptodoitemsscanner.cpp | |
parent | b552cfba1fdd4f69cdefde074c0ae66384d117c6 (diff) | |
download | qt-creator-919f26a488c76afea081d1d11948f30a6f90a1b3.tar.gz |
Todo: Fix thread safety issue in CppTodoItemScanner
Replace the not thread safe Project::files() with the thread safe
CppModelManager::projectPart() to find out whether a file belongs to a
project or not.
Task-number: QTCREATORBUG-12556
Change-Id: Icf443b5b31c818fc15738aa365562db12439d8d7
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Diffstat (limited to 'src/plugins/todo/cpptodoitemsscanner.cpp')
-rw-r--r-- | src/plugins/todo/cpptodoitemsscanner.cpp | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/src/plugins/todo/cpptodoitemsscanner.cpp b/src/plugins/todo/cpptodoitemsscanner.cpp index f4f9e7b4bd..5ff7d14907 100644 --- a/src/plugins/todo/cpptodoitemsscanner.cpp +++ b/src/plugins/todo/cpptodoitemsscanner.cpp @@ -45,17 +45,6 @@ CppTodoItemsScanner::CppTodoItemsScanner(const KeywordList &keywordList, QObject SLOT(documentUpdated(CPlusPlus::Document::Ptr)), Qt::DirectConnection); } -bool CppTodoItemsScanner::shouldProcessFile(const QString &fileName) -{ - CppTools::CppModelManagerInterface *modelManager = CppTools::CppModelManagerInterface::instance(); - - foreach (const CppTools::CppModelManagerInterface::ProjectInfo &info, modelManager->projectInfos()) - if (info.project().data()->files(ProjectExplorer::Project::ExcludeGeneratedFiles).contains(fileName)) - return true; - - return false; -} - void CppTodoItemsScanner::keywordListChanged() { // We need to rescan everything known to the code model @@ -72,7 +61,8 @@ void CppTodoItemsScanner::keywordListChanged() void CppTodoItemsScanner::documentUpdated(CPlusPlus::Document::Ptr doc) { - if (shouldProcessFile(doc->fileName())) + CppTools::CppModelManagerInterface *modelManager = CppTools::CppModelManagerInterface::instance(); + if (!modelManager->projectPart(doc->fileName()).isEmpty()) processDocument(doc); } |