From 4d85d558597f9405b9c9d20446156cd63d5b09c2 Mon Sep 17 00:00:00 2001 From: Ivan Komissarov Date: Fri, 23 Apr 2021 03:43:55 +0300 Subject: Get rid of Set::to/from methods ... and replace them with the new template rangeTo method Also, add efficient Set(Iter, Iter) ctor. Change-Id: I5a2345ca84373692e3ba815e5a8f38cb4cfc4308 Reviewed-by: Christian Kandeler --- src/lib/corelib/language/projectresolver.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/lib/corelib/language/projectresolver.cpp') diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index d3b744892..83f42e4e2 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -635,13 +635,14 @@ SourceArtifactPtr ProjectResolver::createSourceArtifact(const ResolvedProductPtr return artifact; } -static QualifiedIdSet propertiesToEvaluate(const QList &initialProps, - const PropertyDependencies &deps) +static QualifiedIdSet propertiesToEvaluate(std::deque initialProps, + const PropertyDependencies &deps) { - QList remainingProps = initialProps; + std::deque remainingProps = std::move(initialProps); QualifiedIdSet allProperties; while (!remainingProps.empty()) { - const QualifiedId prop = remainingProps.takeFirst(); + const QualifiedId prop = remainingProps.front(); + remainingProps.pop_front(); const auto insertResult = allProperties.insert(prop); if (!insertResult.second) continue; @@ -663,8 +664,9 @@ QVariantMap ProjectResolver::resolveAdditionalModuleProperties(const Item *group const QualifiedIdSet &propsSetInGroup = it->second; // Step 2: Gather all properties that depend on these properties. - const QualifiedIdSet &propsToEval - = propertiesToEvaluate(propsSetInGroup.toList(), m_evaluator->propertyDependencies()); + const QualifiedIdSet &propsToEval = propertiesToEvaluate( + rangeTo>(propsSetInGroup), + m_evaluator->propertyDependencies()); // Step 3: Evaluate all these properties and replace their values in the map QVariantMap modulesMap = currentValues; -- cgit v1.2.3