diff options
author | Tim Jenssen <tim.jenssen@nokia.com> | 2012-01-30 13:04:11 +0100 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2012-01-30 14:18:02 +0100 |
commit | d3411f382b7c19ae385f39871a6086228fdc86d0 (patch) | |
tree | 7fbb4d8ee4fc4b6586a6fb2b590edcdd7c3bab2a | |
parent | 1babeb2123a15b085767a1a3cdd273c93a1caea2 (diff) |
-rw-r--r-- | installerbuilder/libinstaller/packagemanagercore_p.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/installerbuilder/libinstaller/packagemanagercore_p.cpp b/installerbuilder/libinstaller/packagemanagercore_p.cpp index 928c2363e..7686681f3 100644 --- a/installerbuilder/libinstaller/packagemanagercore_p.cpp +++ b/installerbuilder/libinstaller/packagemanagercore_p.cpp @@ -346,17 +346,24 @@ void PackageManagerCorePrivate::clearAllComponentLists() void PackageManagerCorePrivate::clearUpdaterComponentLists() { - qDeleteAll(m_updaterComponents); - m_updaterComponents.clear(); + QSet<Component*> usedComponents = + QSet<Component*>::fromList(m_updaterComponents + m_updaterComponentsDeps); + + const QList<QPair<Component*, Component*> > list = m_componentsToReplaceUpdaterMode.values(); + for (int i = 0; i < list.count(); ++i) { + if (usedComponents.contains(list.at(i).second)) + qWarning() << "a replaceme was allready in the list - is that correct?"; + else + usedComponents.insert(list.at(i).second); + } - qDeleteAll(m_updaterComponentsDeps); + qDeleteAll(usedComponents); + + m_updaterComponents.clear(); m_updaterComponentsDeps.clear(); m_updaterDependencyReplacements.clear(); - const QList<QPair<Component*, Component*> > list = m_componentsToReplaceUpdaterMode.values(); - for (int i = 0; i < list.count(); ++i) - delete list.at(i).second; m_componentsToReplaceUpdaterMode.clear(); m_componentsToInstallCalculated = false; } |