forked from qt-creator/qt-creator
Android/ProjectExplorer: Fix crash when removing multiple Android Qts
That were configured for a project. The crash is triggered by a messy combination of the Android automatic kit creation, project window update, and automatic creation of Qt versions and kits by the automatic project importers, including a mess of the listener pattern without any atomicity. - the user removes the Qt versions - the Android plugin updates the automatic kits and individually reports the removed kits (*) - that triggers an update of the project window and an update of the target setup page (even if that is not shown, but that's yet another issue) - that triggers the project importers, which add Qt versions, which in turn triggers another update of automatic kits in the Android plugin - while that is still in the reporting loop at (*) - that leads to the crash, because the state at this point of time is a mess This minimal fix of the specific crash makes the kit update reporting in the Android plugin at (*) "more atomic", and the same for similar code in the iOS plugin. Fixes: QTCREATORBUG-30347 Change-Id: I2bea6fb735abcaa34469fc43f44aa37313f70429 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -1470,8 +1470,7 @@ void AndroidConfigurations::updateAutomaticKitList()
|
||||
}
|
||||
// cleanup any mess that might have existed before, by removing all Android kits that
|
||||
// existed before, but weren't re-used
|
||||
for (Kit *k : unhandledKits)
|
||||
KitManager::deregisterKit(k);
|
||||
KitManager::deregisterKits(unhandledKits);
|
||||
}
|
||||
|
||||
Environment AndroidConfig::toolsEnvironment() const
|
||||
|
||||
Reference in New Issue
Block a user