aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2023-03-14 20:42:50 +0100
committerLinus Jahn <lnj@kaidan.im>2023-03-14 22:39:14 +0100
commit567b58a7a6dabf105a4d013b07c9937fbd68fd24 (patch)
tree62578e009f96f8a7b1859142bab2aab37c641a27
parentdfe4b2d2759e5a1af43f5f2a74b6416ce5dab229 (diff)
MamManager: Avoid possible use-after-move
-rw-r--r--src/client/QXmppMamManager.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/client/QXmppMamManager.cpp b/src/client/QXmppMamManager.cpp
index a63c997d..a5b1ce5c 100644
--- a/src/client/QXmppMamManager.cpp
+++ b/src/client/QXmppMamManager.cpp
@@ -240,14 +240,16 @@ QString QXmppMamManager::retrieveArchivedMessages(const QString &to,
QXmppTask<QXmppMamManager::RetrieveResult> QXmppMamManager::retrieveMessages(const QString &to, const QString &node, const QString &jid, const QDateTime &start, const QDateTime &end, const QXmppResultSetQuery &resultSetQuery)
{
auto queryIq = buildRequest(to, node, jid, start, end, resultSetQuery);
+ auto queryId = queryIq.queryId();
- auto [itr, _] = d->ongoingRequests.insert({ queryIq.queryId().toStdString(), RetrieveRequestState() });
+ auto [itr, inserted] = d->ongoingRequests.insert({ queryIq.queryId().toStdString(), RetrieveRequestState() });
+ Q_ASSERT(inserted);
// create task here; promise could finish immediately after client()->sendIq()
auto task = itr->second.promise.task();
// retrieve messages
- client()->sendIq(std::move(queryIq)).then(this, [this, queryId = queryIq.queryId()](QXmppClient::IqResult result) {
+ client()->sendIq(std::move(queryIq)).then(this, [this, queryId](QXmppClient::IqResult result) {
auto itr = d->ongoingRequests.find(queryId.toStdString());
if (itr == d->ongoingRequests.end()) {
return;