aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2014-05-07 14:51:38 +0200
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-05-08 14:23:54 +0200
commitd203f9b8203dedd08e3588af0c64e1d16e130bf8 (patch)
treea1cacf516492ac0a0539fd2cb92126c3f4249a35 /src/lib
parentdc247e1d622f027aa195cefc6de52d8e4cca8c13 (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.cpp4
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);