aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/todo/cpptodoitemsscanner.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2014-06-27 10:38:42 -0400
committerNikolai Kosjar <nikolai.kosjar@digia.com>2014-07-03 14:56:31 +0200
commit919f26a488c76afea081d1d11948f30a6f90a1b3 (patch)
tree3180029502cd721df9ccc847975e5ff40a654d76 /src/plugins/todo/cpptodoitemsscanner.cpp
parentb552cfba1fdd4f69cdefde074c0ae66384d117c6 (diff)
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.cpp14
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);
}