diff --git a/src/plugins/valgrind/valgrindprocess.cpp b/src/plugins/valgrind/valgrindprocess.cpp index b2b3cc318bc..9adf86ad680 100644 --- a/src/plugins/valgrind/valgrindprocess.cpp +++ b/src/plugins/valgrind/valgrindprocess.cpp @@ -26,6 +26,8 @@ #include "valgrindprocess.h" +#include + #include #include #include @@ -46,6 +48,12 @@ ValgrindProcess::ValgrindProcess(const IDevice::ConstPtr &device, m_pid = 0; } +ValgrindProcess::~ValgrindProcess() +{ + if (m_remote.m_connection) + QSsh::releaseConnection(m_remote.m_connection); +} + void ValgrindProcess::setProcessChannelMode(QProcess::ProcessChannelMode mode) { if (isLocal()) @@ -125,9 +133,8 @@ void ValgrindProcess::run() } else { // connect to host and wait for connection - // FIXME: Use aquireConnection() instead. if (!m_remote.m_connection) - m_remote.m_connection = new QSsh::SshConnection(m_device->sshParameters(), this); + m_remote.m_connection = QSsh::acquireConnection(m_device->sshParameters()); if (m_remote.m_connection->state() != QSsh::SshConnection::Connected) { connect(m_remote.m_connection, &QSsh::SshConnection::connected, diff --git a/src/plugins/valgrind/valgrindprocess.h b/src/plugins/valgrind/valgrindprocess.h index a4e78d2e1fe..c86a5c3ea28 100644 --- a/src/plugins/valgrind/valgrindprocess.h +++ b/src/plugins/valgrind/valgrindprocess.h @@ -47,6 +47,7 @@ class ValgrindProcess : public QObject public: ValgrindProcess(const ProjectExplorer::IDevice::ConstPtr &device, QObject *parent); + ~ValgrindProcess(); bool isRunning() const;