diff --git a/src/libs/ssh/sshremoteprocessrunner.cpp b/src/libs/ssh/sshremoteprocessrunner.cpp index 617ffc000c4..0bf337917be 100644 --- a/src/libs/ssh/sshremoteprocessrunner.cpp +++ b/src/libs/ssh/sshremoteprocessrunner.cpp @@ -161,7 +161,7 @@ void SshRemoteProcessRunner::setState(int newState) d->m_state = static_cast(newState); if (d->m_state == Inactive) { if (d->m_process) - d->m_process.reset(); + d->m_process.release()->deleteLater(); if (d->m_connection) { disconnect(d->m_connection, nullptr, this, nullptr); SshConnectionManager::releaseConnection(d->m_connection); diff --git a/src/plugins/projectexplorer/abstractprocessstep.cpp b/src/plugins/projectexplorer/abstractprocessstep.cpp index 0088fcd9fbe..a08fbe22d61 100644 --- a/src/plugins/projectexplorer/abstractprocessstep.cpp +++ b/src/plugins/projectexplorer/abstractprocessstep.cpp @@ -286,7 +286,8 @@ void AbstractProcessStep::Private::cleanUp(int exitCode, QProcess::ExitStatus st const bool returnValue = q->processSucceeded(exitCode, status) || m_ignoreReturnValue; - m_process.reset(); + if (m_process) + m_process.release()->deleteLater(); // Report result q->finish(returnValue);