diff options
| author | Linus Jahn <lnj@kaidan.im> | 2021-07-05 23:35:39 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2021-07-06 00:37:03 +0200 |
| commit | d3db0c7e5044dc4507c82ed8f371ca8c324ac639 (patch) | |
| tree | 5e5cdd67b5018fef214e10e37c15f4974afd0bfe /src/base/QXmppStream.cpp | |
| parent | af3f0c1f5b36757867bf719dc27786e9f947024c (diff) | |
| download | qxmpp-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.cpp | 6 |
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); |
