aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppStream.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2021-07-05 23:35:39 +0200
committerLinus Jahn <lnj@kaidan.im>2021-07-06 00:37:03 +0200
commitd3db0c7e5044dc4507c82ed8f371ca8c324ac639 (patch)
tree5e5cdd67b5018fef214e10e37c15f4974afd0bfe /src/base/QXmppStream.cpp
parentaf3f0c1f5b36757867bf719dc27786e9f947024c (diff)
downloadqxmpp-d3db0c7e5044dc4507c82ed8f371ca8c324ac639.tar.gz
QXmppStream: Fix memory leak in new IqState
The code needs to be improved here.
Diffstat (limited to 'src/base/QXmppStream.cpp')
-rw-r--r--src/base/QXmppStream.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/base/QXmppStream.cpp b/src/base/QXmppStream.cpp
index 56f3afda..af4280fc 100644
--- a/src/base/QXmppStream.cpp
+++ b/src/base/QXmppStream.cpp
@@ -54,12 +54,12 @@ class IqState : public QFutureInterface<QXmppStream::IqResult>
Q_DISABLE_COPY(IqState)
public:
- IqState(QFuture<QXmpp::PacketState> sendFuture, bool streamManagementUsed)
+ IqState(QFuture<QXmpp::PacketState> sendFuture, bool streamManagementUsed, QObject *parent)
: QFutureInterface<QXmppStream::IqResult>(QFutureInterfaceBase::Started),
m_sendFuture(std::move(sendFuture)),
m_streamManagementUsed(streamManagementUsed)
{
- auto *watcher = new QFutureWatcher<QXmpp::PacketState>();
+ auto *watcher = new QFutureWatcher<QXmpp::PacketState>(parent);
QObject::connect(watcher, &QFutureWatcher<QXmpp::PacketState>::finished, [=]() {
const auto result = watcher->future().results().last();
@@ -254,7 +254,7 @@ QFuture<QXmppStream::IqResult> QXmppStream::sendIq(const QXmppIq &iq)
return sendIq(newIq);
}
- auto *interface = new IqState(send(iq), d->streamManager.enabled());
+ auto *interface = new IqState(send(iq), d->streamManager.enabled(), this);
if (!interface->isFinished()) {
d->runningIqs.insert(iq.id(), interface);