diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-09-04 14:59:50 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-09-04 15:59:40 +0200 |
commit | cc70b603d30b1a9dae9cf0bc30c570c5f7b0b994 (patch) | |
tree | 765b83e68eea0712aa16128bbf11c82424b868ee /src/plugins/cpptools/builtinindexingsupport.cpp | |
parent | 50e951dcb4a421d94e387fb91d527a9ba4bbce00 (diff) | |
download | qt-creator-cc70b603d30b1a9dae9cf0bc30c570c5f7b0b994.tar.gz |
C++: Change QStringList to QSet<QString> 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 <daniel.teske@digia.com>
Diffstat (limited to 'src/plugins/cpptools/builtinindexingsupport.cpp')
-rw-r--r-- | src/plugins/cpptools/builtinindexingsupport.cpp | 26 |
1 files changed, 12 insertions, 14 deletions
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<QString> sourceFiles; }; class WriteTaskFileForDiagnostics @@ -133,7 +133,7 @@ private: int m_processedDiagnostics; }; -void classifyFiles(const QStringList &files, QStringList *headers, QStringList *sources) +void classifyFiles(const QSet<QString> &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<void> &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<void> &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<void> &future, const ParseParams params) void parse(QFutureInterface<void> &future, const ParseParams params) { - const QStringList files = params.sourceFiles; + const QSet<QString> &files = params.sourceFiles; if (files.isEmpty()) return; @@ -356,7 +354,7 @@ BuiltinIndexingSupport::BuiltinIndexingSupport() BuiltinIndexingSupport::~BuiltinIndexingSupport() {} -QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(const QStringList &sourceFiles, +QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(const QSet<QString> &sourceFiles, CppModelManagerInterface::ProgressNotificationMode mode) { CppModelManager *mgr = CppModelManager::instance(); |