diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2020-05-08 19:47:21 +0200 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2020-05-11 09:56:46 +0000 |
commit | e45f1c6b3cc24679ea40c4868f71876246afe130 (patch) | |
tree | 5ede85da1093b0ed6d7ef5e178219ffc53827d15 /src | |
parent | c27911e40809c3fe295f1728d57b55c5a8045842 (diff) |
Fix ModuleLoader::moduleProviderConfig
The function stopped too early in the ItemValueType branch which
disallowed to set properties of the multiple module providers.
Also, it modified the 'name' parameter resulting in the invalid map key.
Change-Id: I549607cb3191134201634c60b72b782874f07556
Reviewed-by: Richard Weickelt <richard@weickelt.de>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/corelib/language/moduleloader.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index e0f319461..3eebdfd7c 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -3808,7 +3808,7 @@ QVariantMap ModuleLoader::moduleProviderConfig(ModuleLoader::ProductContext &pro = product.item->itemProperty(StringConstants::moduleProviders()); if (configItemValue) { const std::function<void(const Item *, QualifiedId)> collectMap - = [this, &product, &collectMap](const Item *item, QualifiedId name) { + = [this, &product, &collectMap](const Item *item, const QualifiedId &name) { const Item::PropertyMap &props = item->properties(); for (auto it = props.begin(); it != props.end(); ++it) { QVariant value; @@ -3816,8 +3816,8 @@ QVariantMap ModuleLoader::moduleProviderConfig(ModuleLoader::ProductContext &pro case Value::ItemValueType: { const auto childItem = static_cast<ItemValue *>(it.value().get())->item(); childItem->setScope(item->scope()); - collectMap(childItem, QualifiedId(name += it.key())); - return; + collectMap(childItem, QualifiedId(name) << it.key()); + continue; } case Value::JSSourceValueType: value = m_evaluator->value(item, it.key()).toVariant(); |