summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Schäpers <bjoern@hazardy.de>2022-02-20 23:15:02 +0100
committerBjörn Schäpers <qt-codereview@hazardy.de>2022-02-28 10:19:34 +0000
commitc67ff8a11d3a4e7b54aff9060daa6714a2ba61d2 (patch)
treefa08a438b8a914b3623ca347eedf43ff053fccdd
parentc934cbfae91c15511639771fe8c6fc66352005f5 (diff)
downloadqbs-c67ff8a11d3a4e7b54aff9060daa6714a2ba61d2.tar.gz
ProjectResolver: Fix disabled dependencies with Qt6
Since the QHash references aren't stable anymore we had some fun here. Either qbs crashed or we hit the assertion in projectbuilddata.cpp:399 QBS_CHECK(dependency->enabled); Change-Id: I9be34e5a315c4c0834c40782972fb358ead31457 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--src/lib/corelib/language/projectresolver.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp
index 68430d175..d7ae11aaf 100644
--- a/src/lib/corelib/language/projectresolver.cpp
+++ b/src/lib/corelib/language/projectresolver.cpp
@@ -1586,12 +1586,15 @@ void gatherDependencies(ResolvedProduct *product, DependencyMap &dependencies)
{
if (dependencies.contains(product))
return;
- Set<ResolvedProduct *> &productDeps = dependencies[product];
+ // Hold locally because the QHash references aren't stable in Qt6.
+ Set<ResolvedProduct *> productDeps = dependencies[product];
for (const ResolvedProductPtr &dep : qAsConst(product->dependencies)) {
productDeps << dep.get();
gatherDependencies(dep.get(), dependencies);
productDeps += dependencies.value(dep.get());
}
+ // Now that we gathered the dependencies, put them in the map.
+ dependencies[product] = std::move(productDeps);
}