From c31af2fce187fcdf4159642d2ab38ae4474815f1 Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Tue, 29 Nov 2011 16:53:25 +0100 Subject: fix a crash if the replaces is not existing Change-Id: I2b65c343f701d67577e2b127b47054368ce583c7 Reviewed-by: Karsten Heimrich --- installerbuilder/libinstaller/packagemanagercore.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'installerbuilder') diff --git a/installerbuilder/libinstaller/packagemanagercore.cpp b/installerbuilder/libinstaller/packagemanagercore.cpp index 14a29022c..facf5b6b3 100644 --- a/installerbuilder/libinstaller/packagemanagercore.cpp +++ b/installerbuilder/libinstaller/packagemanagercore.cpp @@ -1557,15 +1557,20 @@ void PackageManagerCore::storeReplacedComponents(QHash &co for (; it != data.replacementToExchangeables.constEnd(); ++it) { foreach (const QString &componentName, it.value()) { Component *component = components.take(componentName); - if (!component && !d->componentsToReplace(data.runMode).contains(componentName)) { + // if one component has a replaces which is not existing in the current component list anymore, + // just ignore it + if (!component) { + qDebug() << componentName << " - Does not exist in the repositories anymore."; + continue; + } + if (!d->componentsToReplace(data.runMode).contains(componentName)) { component = new Component(this); component->setValue(scName, componentName); } else { component->loadComponentScript(); d->replacementDependencyComponents(data.runMode).append(component); } - if (component) - d->componentsToReplace(data.runMode).insert(componentName, qMakePair(it.key(), component)); + d->componentsToReplace(data.runMode).insert(componentName, qMakePair(it.key(), component)); } } } -- cgit v1.2.3