From 60f9046d5b091707f67c0e081be9f0fdb0c8643a Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 10 Mar 2014 15:22:46 -0300 Subject: [PATCH] CppTools: Save some stats by using correct include paths ..while initial parsing. Change-Id: I202da3f4f9e445a28e9726352fc005488efe2893 Reviewed-by: Erik Verbruggen --- src/plugins/cpptools/builtinindexingsupport.cpp | 7 +++++++ src/plugins/cpptools/cppmodelmanager.cpp | 1 + 2 files changed, 8 insertions(+) diff --git a/src/plugins/cpptools/builtinindexingsupport.cpp b/src/plugins/cpptools/builtinindexingsupport.cpp index 0e7542a2d77..51c3bde5563 100644 --- a/src/plugins/cpptools/builtinindexingsupport.cpp +++ b/src/plugins/cpptools/builtinindexingsupport.cpp @@ -47,6 +47,8 @@ static void parse(QFutureInterface &future, const QString conf = CppModelManagerInterface::configurationFileName(); bool processingHeaders = false; + CppModelManager *cmm = CppModelManager::instance(); + const QStringList fallbackIncludePaths = cmm->includePaths(); for (int i = 0; i < files.size(); ++i) { if (future.isPaused()) future.waitForResume(); @@ -65,6 +67,11 @@ static void parse(QFutureInterface &future, processingHeaders = true; } + QList parts = cmm->projectPart(fileName); + QStringList includePaths = parts.isEmpty() + ? fallbackIncludePaths + : parts.first()->includePaths; + preproc->setIncludePaths(includePaths); preproc->run(fileName); future.setProgressValue(files.size() - preproc->todo().size()); diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index cec5b6772c0..640e8bfa075 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -802,6 +802,7 @@ ProjectPart::Ptr CppModelManager::projectPartForProjectFile(const QString &proje QList CppModelManager::projectPart(const QString &fileName) const { + QMutexLocker locker(&m_projectMutex); return m_fileToProjectParts.value(fileName); }