From a082365d65e4adc2a3526261224d407ef4cdaaff Mon Sep 17 00:00:00 2001 From: Daniel Teske <daniel.teske@nokia.com> Date: Tue, 6 Dec 2011 15:13:50 +0100 Subject: [PATCH] Fix crash on removing targets Reported on irc. Change-Id: I9e9911fff70c999158b941ab16918af03a51c728 Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com> --- src/plugins/projectexplorer/project.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index 23432b69d68..8962422566c 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -177,17 +177,20 @@ bool Project::removeTarget(Target *target) if (bm->isBuilding(target)) return false; - emit aboutToRemoveTarget(target); - - d->m_targets.removeOne(target); - - emit removedTarget(target); if (target == activeTarget()) { - if (d->m_targets.isEmpty()) + if (d->m_targets.size() == 1) { setActiveTarget(0); - else + } else if (d->m_targets.first() == target) { + setActiveTarget(d->m_targets.at(1)); + } else { setActiveTarget(d->m_targets.at(0)); + } } + + emit aboutToRemoveTarget(target); + d->m_targets.removeOne(target); + emit removedTarget(target); + delete target; return true; } -- GitLab