From 919f26a488c76afea081d1d11948f30a6f90a1b3 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 27 Jun 2014 10:38:42 -0400 Subject: [PATCH] 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 Reviewed-by: Eike Ziller --- src/plugins/todo/cpptodoitemsscanner.cpp | 14 ++------------ src/plugins/todo/cpptodoitemsscanner.h | 1 - 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/src/plugins/todo/cpptodoitemsscanner.cpp b/src/plugins/todo/cpptodoitemsscanner.cpp index f4f9e7b4bd0..5ff7d14907f 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); } diff --git a/src/plugins/todo/cpptodoitemsscanner.h b/src/plugins/todo/cpptodoitemsscanner.h index aba7414b758..78a7d9158d0 100644 --- a/src/plugins/todo/cpptodoitemsscanner.h +++ b/src/plugins/todo/cpptodoitemsscanner.h @@ -46,7 +46,6 @@ public: explicit CppTodoItemsScanner(const KeywordList &keywordList, QObject *parent = 0); protected: - bool shouldProcessFile(const QString &fileName); void keywordListChanged(); private slots: