diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-05-07 14:51:38 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-05-08 14:23:54 +0200 |
commit | d203f9b8203dedd08e3588af0c64e1d16e130bf8 (patch) | |
tree | a1cacf516492ac0a0539fd2cb92126c3f4249a35 /src/lib | |
parent | dc247e1d622f027aa195cefc6de52d8e4cca8c13 (diff) |
fix crash on Properties block in Export itemv1.2.1
The merged Export item was lacking a file context.
Added a QBS_CHECK in instantiateModule to ensure a valid file context
of the module instance scope.
Task-number: QBS-550
Change-Id: I04368ba2e290a9af70f22e9c4c07324e295da4f0
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/corelib/language/moduleloader.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index e6c911d6e..ba11840ad 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -443,12 +443,15 @@ void ModuleLoader::mergeExportItems(ModuleLoader::ProductContext *productContext { Item *merged = Item::create(productContext->item->pool()); merged->setTypeName(QLatin1String("Export")); + merged->setFile(productContext->item->file()); + merged->setLocation(productContext->item->location()); QSet<Item *> exportItems; foreach (Item *exportItem, productContext->exportItems) { checkCancelation(); if (Q_UNLIKELY(productContext->filesWithExportItem.contains(exportItem->file()))) throw ErrorInfo(Tr::tr("Multiple Export items in one product are prohibited."), exportItem->location()); + merged->setFile(exportItem->file()); merged->setLocation(exportItem->location()); productContext->filesWithExportItem += exportItem->file(); exportItems.insert(exportItem); @@ -861,6 +864,7 @@ void ModuleLoader::instantiateModule(ProductContext *productContext, Item *insta // create module scope Item *moduleScope = Item::create(m_pool); + QBS_CHECK(instanceScope->file()); moduleScope->setFile(instanceScope->file()); moduleScope->setScope(instanceScope); copyProperty(QLatin1String("project"), productContext->project->scope, moduleScope); |