diff --git a/src/libs/utils/launchersocket.cpp b/src/libs/utils/launchersocket.cpp index 39b26dac0ac..ba8b14fecc1 100644 --- a/src/libs/utils/launchersocket.cpp +++ b/src/libs/utils/launchersocket.cpp @@ -41,6 +41,7 @@ class LauncherSignal { public: CallerHandle::SignalType signalType() const { return m_signalType; } + virtual ~LauncherSignal() = default; protected: LauncherSignal(CallerHandle::SignalType signalType) : m_signalType(signalType) {} private: @@ -105,6 +106,11 @@ private: const int m_exitCode; }; +CallerHandle::~CallerHandle() +{ + qDeleteAll(m_signals); +} + bool CallerHandle::waitForStarted(int msecs) { return waitForSignal(msecs, SignalType::Started); diff --git a/src/libs/utils/launchersocket.h b/src/libs/utils/launchersocket.h index 1d8e6bf6872..56dfa65e007 100644 --- a/src/libs/utils/launchersocket.h +++ b/src/libs/utils/launchersocket.h @@ -68,7 +68,7 @@ public: }; Q_ENUM(SignalType) CallerHandle(quintptr token, ProcessMode mode) : QObject(), m_token(token), m_processMode(mode) {} - ~CallerHandle() override { qDeleteAll(m_signals); } + ~CallerHandle() override; LauncherHandle *launcherHandle() const { return m_launcherHandle; } void setLauncherHandle(LauncherHandle *handle) { QMutexLocker locker(&m_mutex); m_launcherHandle = handle; }