summaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2019-08-05 14:18:01 +0200
committerMarco Bubke <marco.bubke@qt.io>2019-08-27 11:51:17 +0000
commit912b4763e00437d32759ba948e9bc678ff53b6be (patch)
treecaf146cdf2d802d6f62ab1206a9b077090b7d523 /src/tools
parentd610cf3793a34739a71d612b6bc1bab0b4d5cec7 (diff)
downloadqt-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.cpp12
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(),