summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2023-03-07 13:17:59 +0200
committerKatja Marttila <katja.marttila@qt.io>2023-03-22 10:34:28 +0200
commit686f93362ca3495b92b584ecb99b63662f6213d6 (patch)
tree011222bd3ddf18d1be13b98e9078cc30cd494331
parent2eb26d82d818fa13e0a78ef308020fa3909ac8ad (diff)
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 <arttu.tarkiainen@qt.io>
-rw-r--r--src/libs/installer/packagemanagercore.cpp2
1 files changed, 2 insertions, 0 deletions
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);
}