From cc70b603d30b1a9dae9cf0bc30c570c5f7b0b994 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Thu, 4 Sep 2014 14:59:50 +0200 Subject: C++: Change QStringList to QSet to prevent conversions. This eliminates a bunch of list->set->list conversions. Especially the ProjectInfo::appendProjectPart takes lots of time converting for every part added. Change-Id: Ib3c8cd4b0ad6c012ccbeed12ebedd46b9b6cca95 Reviewed-by: Daniel Teske --- src/plugins/cpptools/builtinindexingsupport.cpp | 26 ++++++++++++------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'src/plugins/cpptools/builtinindexingsupport.cpp') diff --git a/src/plugins/cpptools/builtinindexingsupport.cpp b/src/plugins/cpptools/builtinindexingsupport.cpp index 47b771a6b2..cd2386a6bb 100644 --- a/src/plugins/cpptools/builtinindexingsupport.cpp +++ b/src/plugins/cpptools/builtinindexingsupport.cpp @@ -68,7 +68,7 @@ public: int revision; ProjectPart::HeaderPaths headerPaths; WorkingCopy workingCopy; - QStringList sourceFiles; + QSet sourceFiles; }; class WriteTaskFileForDiagnostics @@ -133,7 +133,7 @@ private: int m_processedDiagnostics; }; -void classifyFiles(const QStringList &files, QStringList *headers, QStringList *sources) +void classifyFiles(const QSet &files, QStringList *headers, QStringList *sources) { foreach (const QString &file, files) { if (ProjectFile::isSource(ProjectFile::classify(file))) @@ -145,11 +145,11 @@ void classifyFiles(const QStringList &files, QStringList *headers, QStringList * void indexFindErrors(QFutureInterface &future, const ParseParams params) { - QStringList files = params.sourceFiles; - files.sort(); QStringList sources, headers; - classifyFiles(files, &headers, &sources); - files = sources + headers; + classifyFiles(params.sourceFiles, &headers, &sources); + sources.sort(); + headers.sort(); + QStringList files = sources + headers; WriteTaskFileForDiagnostics taskFileWriter; QElapsedTimer timer; @@ -196,20 +196,18 @@ void index(QFutureInterface &future, const ParseParams params) sourceProcessor->setHeaderPaths(params.headerPaths); sourceProcessor->setWorkingCopy(params.workingCopy); - QStringList files = params.sourceFiles; QStringList sources; QStringList headers; - classifyFiles(files, &headers, &sources); + classifyFiles(params.sourceFiles, &headers, &sources); - foreach (const QString &file, files) + foreach (const QString &file, params.sourceFiles) sourceProcessor->removeFromCache(file); const int sourceCount = sources.size(); - files = sources; - files += headers; + QStringList files = sources + headers; - sourceProcessor->setTodo(files); + sourceProcessor->setTodo(files.toSet()); const QString conf = CppModelManagerInterface::configurationFileName(); bool processingHeaders = false; @@ -250,7 +248,7 @@ void index(QFutureInterface &future, const ParseParams params) void parse(QFutureInterface &future, const ParseParams params) { - const QStringList files = params.sourceFiles; + const QSet &files = params.sourceFiles; if (files.isEmpty()) return; @@ -356,7 +354,7 @@ BuiltinIndexingSupport::BuiltinIndexingSupport() BuiltinIndexingSupport::~BuiltinIndexingSupport() {} -QFuture BuiltinIndexingSupport::refreshSourceFiles(const QStringList &sourceFiles, +QFuture BuiltinIndexingSupport::refreshSourceFiles(const QSet &sourceFiles, CppModelManagerInterface::ProgressNotificationMode mode) { CppModelManager *mgr = CppModelManager::instance(); -- cgit v1.2.1