From 8f8a7b8110c0ebef04c3dba4075bfeb1dd3ac169 Mon Sep 17 00:00:00 2001 From: Ivan Komissarov Date: Wed, 16 Sep 2020 15:29:01 +0200 Subject: Remove the isBaseModule argument from loadModuleFile() Pass the fullName to the isBaseModule() function so the value can be calculated where it is needed. Change-Id: I4f4574818fd335d67d72bf307276bacf18cfd89b Reviewed-by: Christian Kandeler --- src/lib/corelib/language/moduleloader.cpp | 17 +++++++++-------- src/lib/corelib/language/moduleloader.h | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'src/lib/corelib') diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index f8c03ddf6..4eefe9d47 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -2952,9 +2952,9 @@ private: std::vector &m_dependsChain; }; -static bool isBaseModule(const QualifiedId &moduleName) +static bool isBaseModule(QStringView fullModuleName) { - return moduleName.size() == 1 && moduleName.front() == StringConstants::qbsModule(); + return fullModuleName == StringConstants::qbsModule(); } class DelayedPropertyChanger @@ -3028,7 +3028,8 @@ Item *ModuleLoader::loadModule(ProductContext *productContext, Item *exportingPr // Prepare module instance for evaluating Module.condition. DelayedPropertyChanger delayedPropertyChanger; const QString &qbsModuleName = StringConstants::qbsModule(); - if (!isBaseModule(moduleName)) { + const auto fullName = moduleName.toString(); + if (!isBaseModule(fullName)) { ItemValuePtr qbsProp = productContext->item->itemProperty(qbsModuleName); if (qbsProp) { ValuePtr qbsModuleValue = moduleInstance->ownProperty(qbsModuleName); @@ -3041,7 +3042,7 @@ Item *ModuleLoader::loadModule(ProductContext *productContext, Item *exportingPr } Item *modulePrototype = nullptr; - ProductModuleInfo * const pmi = productModule(productContext, moduleName.toString(), + ProductModuleInfo * const pmi = productModule(productContext, fullName, multiplexId, *isProductDependency); if (pmi) { m_dependsChain.back().isProduct = true; @@ -3152,7 +3153,7 @@ Item *ModuleLoader::searchAndLoadModuleFile(ProductContext *productContext, for (auto it = moduleFileNames.begin(); it != moduleFileNames.end(); ) { const QString &filePath = *it; const auto [module, triedToLoad] = loadModuleFile( - productContext, fullName, isBaseModule(moduleName), filePath, moduleInstance); + productContext, fullName, filePath, moduleInstance); if (module) candidates.emplace_back(module, 0, i); if (!triedToLoad) @@ -3267,7 +3268,7 @@ static Item *findDeepestModuleInstance(Item *instance) } std::pair ModuleLoader::loadModuleFile( - ProductContext *productContext, const QString &fullModuleName, bool isBaseModule, + ProductContext *productContext, const QString &fullModuleName, const QString &filePath, Item *moduleInstance) { checkCancelation(); @@ -3300,7 +3301,7 @@ std::pair ModuleLoader::loadModuleFile( return {nullptr, triedToLoad}; } - if (isBaseModule) + if (isBaseModule(fullModuleName)) setupBaseModulePrototype(module); else resolveParameterDeclarations(module); @@ -3535,7 +3536,7 @@ void ModuleLoader::instantiateModule(ProductContext *productContext, Item *expor if (productModuleInfo) { dependsContext.productDependencies = &productContext->productModuleDependencies[fullName]; resolveDependencies(&dependsContext, moduleInstance); - } else if (!isBaseModule(moduleName)) { + } else if (!isBaseModule(fullName)) { dependsContext.productDependencies = &productContext->info.usedProducts; resolveDependencies(&dependsContext, moduleInstance); } diff --git a/src/lib/corelib/language/moduleloader.h b/src/lib/corelib/language/moduleloader.h index b6d8143e0..df853e77f 100644 --- a/src/lib/corelib/language/moduleloader.h +++ b/src/lib/corelib/language/moduleloader.h @@ -321,7 +321,7 @@ private: FallbackMode fallbackMode, bool isRequired, Item *moduleInstance); QStringList &getModuleFileNames(const QString &dirPath); std::pair loadModuleFile( - ProductContext *productContext, const QString &fullModuleName, bool isBaseModule, + ProductContext *productContext, const QString &fullModuleName, const QString &filePath, Item *moduleInstance); std::pair getModulePrototype(ProductContext *productContext, const QString &fullModuleName, const QString &filePath); -- cgit v1.2.3