diff options
author | Björn Schäpers <bjoern@hazardy.de> | 2022-02-20 23:15:02 +0100 |
---|---|---|
committer | Björn Schäpers <qt-codereview@hazardy.de> | 2022-02-28 10:19:34 +0000 |
commit | c67ff8a11d3a4e7b54aff9060daa6714a2ba61d2 (patch) | |
tree | fa08a438b8a914b3623ca347eedf43ff053fccdd | |
parent | c934cbfae91c15511639771fe8c6fc66352005f5 (diff) | |
download | qbs-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.cpp | 5 |
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); } |