summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/uninstallercalculator.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2022-06-06 11:57:10 +0300
committerKatja Marttila <katja.marttila@qt.io>2022-06-06 14:12:19 +0300
commit0a44357ba8c59339d4a12a2433c244b8db431904 (patch)
tree91d4e24a22c9c0940cce013021777bf2728c40bd /src/libs/installer/uninstallercalculator.cpp
parentfdfd2e381bd16a99822ef8c9dfdffb75ab29d142 (diff)
Fix installer crash if already installed virtual components are replaced
If installed component is replaced by another component, core 'categorizes' it under ComponentType::Replacement. By asking PackageManagerCore::componentByName(QString &name) excludes the replaced components. Fixed so that all 'categories' are used when searching the component by its name. Task-number: QTIFW-2672 Change-Id: I8b5528f7ddca777fe9b696c1d0151640730d1b9f Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'src/libs/installer/uninstallercalculator.cpp')
-rw-r--r--src/libs/installer/uninstallercalculator.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libs/installer/uninstallercalculator.cpp b/src/libs/installer/uninstallercalculator.cpp
index af03df8c5..3de9f5b60 100644
--- a/src/libs/installer/uninstallercalculator.cpp
+++ b/src/libs/installer/uninstallercalculator.cpp
@@ -192,7 +192,10 @@ void UninstallerCalculator::appendVirtualComponentsToUninstall(const bool revers
}
} else {
for (const QString &componentName : qAsConst(m_localVirtualComponents)) {
- Component *virtualComponent = m_core->componentByName(componentName);
+ Component *virtualComponent = m_core->componentByName(componentName, m_core->components(PackageManagerCore::ComponentType::All));
+ if (!virtualComponent)
+ continue;
+
if (virtualComponent->isInstalled() && !m_componentsToUninstall.contains(virtualComponent)) {
// Components with auto dependencies were handled in the previous step
if (!virtualComponent->autoDependencies().isEmpty() || virtualComponent->forcedInstallation())