summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}