diff --git a/src/plugins/projectexplorer/abstractprocessstep.cpp b/src/plugins/projectexplorer/abstractprocessstep.cpp index 2a42a58fd304ca947b78b89b9b5d48ceeb541807..bc93d08265f752854efe1aef93d199e03eee3263 100644 --- a/src/plugins/projectexplorer/abstractprocessstep.cpp +++ b/src/plugins/projectexplorer/abstractprocessstep.cpp @@ -188,6 +188,12 @@ void AbstractProcessStep::run(QFutureInterface<bool> &fi) processFinished(m_process->exitCode(), m_process->exitStatus()); bool returnValue = processSucceeded(m_process->exitCode(), m_process->exitStatus()) || m_ignoreReturnValue; + // Clean up output parsers + if (m_outputParserChain) { + delete m_outputParserChain; + m_outputParserChain = 0; + } + delete m_process; m_process = 0; delete m_eventLoop; @@ -204,12 +210,6 @@ void AbstractProcessStep::processStarted() void AbstractProcessStep::processFinished(int exitCode, QProcess::ExitStatus status) { - // Clean up output parsers - if (m_outputParserChain) { - delete m_outputParserChain; - m_outputParserChain = 0; - } - if (status == QProcess::NormalExit && exitCode == 0) { emit addOutput(tr("The process \"%1\" exited normally.") .arg(QDir::toNativeSeparators(m_command)),