From e69d90bc1aa543a824229a65a3d1b3320a9c98a1 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 28 Jul 2020 16:03:02 +0200 Subject: [PATCH] ProjectExplorer: QPointer guard for OverrideMakeflagsAspect's widget As for the other aspects. KitManager::kitRemoved() triggers several actions in a fragile (wrong?) order: BuildSettingsWidget::updateBuildSettings() after Target::handleKitRemoval() already destroyed the target with all configurations and steps. Having a null there is fine. Change-Id: I2e10826c12971a25ee4cbab24ef5327fa6e47499 Reviewed-by: Christian Stenger Reviewed-by: Oliver Wolff --- src/plugins/projectexplorer/makestep.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/projectexplorer/makestep.cpp b/src/plugins/projectexplorer/makestep.cpp index 7b44d0e7a1f..ffd3bed69c1 100644 --- a/src/plugins/projectexplorer/makestep.cpp +++ b/src/plugins/projectexplorer/makestep.cpp @@ -85,10 +85,10 @@ public: void addToLayout(LayoutBuilder &builder) final { BaseBoolAspect::addToLayout(builder); - builder.addItem(m_nonOverrideWarning); + builder.addItem(m_nonOverrideWarning.data()); } - QLabel *m_nonOverrideWarning; + QPointer m_nonOverrideWarning; }; class MakeStepConfigWidget : public BuildStepConfigWidget @@ -470,6 +470,7 @@ BuildStepConfigWidget *MakeStep::createConfigWidget() m_userJobCountAspect->setEnabled(jobCountEnabled); m_overrideMakeflagsAspect->setEnabled(jobCountEnabled); + QTC_ASSERT(m_overrideMakeflagsAspect->m_nonOverrideWarning, return); m_overrideMakeflagsAspect->m_nonOverrideWarning->setVisible( makeflagsJobCountMismatch() && !jobCountOverridesMakeflags()); widget->m_disableInSubDirsCheckBox->setChecked(!enabledForSubDirs());