diff options
author | Katja Marttila <katja.marttila@qt.io> | 2023-03-07 13:17:59 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2023-03-22 10:34:28 +0200 |
commit | 686f93362ca3495b92b584ecb99b63662f6213d6 (patch) | |
tree | 011222bd3ddf18d1be13b98e9078cc30cd494331 /src/libs/installer/packagemanagercore.cpp | |
parent | 2eb26d82d818fa13e0a78ef308020fa3909ac8ad (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>
Diffstat (limited to 'src/libs/installer/packagemanagercore.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 2 |
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); } |