diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2018-03-20 17:05:05 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2018-04-10 11:24:02 +0000 |
commit | bfe3bdd890c87095b3633357f921d2b4f2250a71 (patch) | |
tree | af6b0585854feeb2a57efda5810d87d477a655c3 /src/plugins/projectexplorer/targetsetupwidget.cpp | |
parent | 990d26deba2889d70bed7287520e3cf006af45ae (diff) |
TargetSetupPage: Try to prevent a crash
Try to prevent a crash that I can not reproduce:
* Use a std::vector of TargetSetupWidgets instead of a map.
* Double-check that no nullptr will end up in that vector.
* Make sure widgets are removed from the vector before their kits
become invalid.
* Unify removal of widgets.
Change-Id: Ie57c7689033914458ca4d4f3ae11998480008ff3
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/targetsetupwidget.cpp')
-rw-r--r-- | src/plugins/projectexplorer/targetsetupwidget.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/plugins/projectexplorer/targetsetupwidget.cpp b/src/plugins/projectexplorer/targetsetupwidget.cpp index 959a167b49..258809f712 100644 --- a/src/plugins/projectexplorer/targetsetupwidget.cpp +++ b/src/plugins/projectexplorer/targetsetupwidget.cpp @@ -107,7 +107,7 @@ TargetSetupWidget::TargetSetupWidget(Kit *k, const QString &projectPath) : connect(m_manageButton, &QAbstractButton::clicked, this, &TargetSetupWidget::manageKit); } -Kit *TargetSetupWidget::kit() +Kit *TargetSetupWidget::kit() const { return m_kit; } @@ -119,7 +119,7 @@ void TargetSetupWidget::clearKit() bool TargetSetupWidget::isKitSelected() const { - if (!m_detailsWidget->isChecked()) + if (!m_kit || !m_detailsWidget->isChecked()) return false; return !selectedBuildInfoList().isEmpty(); |