From 59c61da6ec4027c0a52a57a6357f58a07f2e1a96 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 13 Feb 2015 17:44:06 +0100 Subject: Amend property evaluation optimization. There is code further down in the chain (e.g. setupBuildEnvironment()) that expects the first module instance it finds to contain the right definition for all its properties. So make sure that is the case. Change-Id: I55f10d626f5be7ec8502f54e0b1a9673df0b5d93 Reviewed-by: Joerg Bornemann --- src/lib/corelib/language/projectresolver.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index cffe6b074..83d661c14 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -1183,11 +1183,13 @@ QVariantMap ProjectResolver::evaluateProperties(Item *item, const bool isOwnProperty = std::binary_search(evalContext.ownProperties.constBegin(), evalContext.ownProperties.constEnd(), it.key()); if (isPotentialGlobalEntry) { - const QHash::ConstIterator it + const QHash::ConstIterator globalIt = evalContext.globalResult->find(fullKey); - if (it != evalContext.globalResult->constEnd()) { - if (!isOwnProperty || it->strongPrecedence) + if (globalIt != evalContext.globalResult->constEnd()) { + if (!isOwnProperty || globalIt->strongPrecedence) { + result[it.key()] = globalIt->value; break; + } } } -- cgit v1.2.3