From 686f93362ca3495b92b584ecb99b63662f6213d6 Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Tue, 7 Mar 2023 13:17:59 +0200 Subject: Fix dependency resolution error In GUI, toggling between updater view, packagemanager view and updater view could cause impossible dependency resolution error, or wrong components to be updated. There are two component lists, one for updater and one for package manager. Same component can exist in both list with different pointers. m_componentByNameHash contains a quick lookups for the components - as the component pointers change between updater and package manager the list needs to be cleared between each updater/package manager toggle so that correct component is searched. Task-number: QTIFW-3001 Change-Id: Ia42370a286c45d831864ec632a6958f66209a4cd Reviewed-by: Arttu Tarkiainen --- src/libs/installer/packagemanagercore.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/libs/installer/packagemanagercore.cpp') diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index c598e6c52..85beeb727 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -3743,6 +3743,7 @@ bool PackageManagerCore::isUninstaller() const void PackageManagerCore::setUpdater() { d->m_magicBinaryMarker = BinaryContent::MagicUpdaterMarker; + d->m_componentByNameHash.clear(); emit installerBinaryMarkerChanged(d->m_magicBinaryMarker); } @@ -3763,6 +3764,7 @@ bool PackageManagerCore::isUpdater() const void PackageManagerCore::setPackageManager() { d->m_magicBinaryMarker = BinaryContent::MagicPackageManagerMarker; + d->m_componentByNameHash.clear(); emit installerBinaryMarkerChanged(d->m_magicBinaryMarker); } -- cgit v1.2.3