diff options
author | Marco Bubke <marco.bubke@qt.io> | 2019-08-05 14:18:01 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2019-08-27 11:51:17 +0000 |
commit | 912b4763e00437d32759ba948e9bc678ff53b6be (patch) | |
tree | caf146cdf2d802d6f62ab1206a9b077090b7d523 /src/tools | |
parent | d610cf3793a34739a71d612b6bc1bab0b4d5cec7 (diff) | |
download | qt-creator-912b4763e00437d32759ba948e9bc678ff53b6be.tar.gz |
ClangPchManager: Optimize difference computing
Don't create temporary containers.
Change-Id: I28e8999c3443a20c8ef6da3a048ec90fbb99a3c3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/clangpchmanagerbackend/source/projectpartsmanager.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/tools/clangpchmanagerbackend/source/projectpartsmanager.cpp b/src/tools/clangpchmanagerbackend/source/projectpartsmanager.cpp index 599605d2ab..548dd373ac 100644 --- a/src/tools/clangpchmanagerbackend/source/projectpartsmanager.cpp +++ b/src/tools/clangpchmanagerbackend/source/projectpartsmanager.cpp @@ -189,21 +189,20 @@ ProjectPartsManagerInterface::UpToDataProjectParts ProjectPartsManager::checkDep const auto &newSources = buildDependency.sources; - SourceEntries updatedSourceTyes; - updatedSourceTyes.reserve(newSources.size()); + Change change = Change::No; std::set_symmetric_difference(newSources.begin(), newSources.end(), oldSources.begin(), oldSources.end(), - std::back_inserter(updatedSourceTyes), + make_iterator([&](SourceEntry entry) { + change = changedSourceType(entry, change); + }), [](SourceEntry first, SourceEntry second) { return std::tie(first.sourceId, first.sourceType) < std::tie(second.sourceId, second.sourceType); }); - auto change = changedSourceType(updatedSourceTyes); - switch (change) { case Change::Project: updateProjectProjectParts.emplace_back(std::move(projectPart)); @@ -218,9 +217,6 @@ ProjectPartsManagerInterface::UpToDataProjectParts ProjectPartsManager::checkDep } if (change == Change::No) { - SourceEntries updatedTimeStamps; - updatedTimeStamps.reserve(newSources.size()); - Change change = mismatch_collect( newSources.begin(), newSources.end(), |