summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSona Kurazyan <sona.kurazyan@qt.io>2022-06-20 16:19:24 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-06-22 13:54:18 +0000
commit36202da4a93f43348f36131fb5695edd7a0f708a (patch)
tree0d8ed58b453ab02ffa39582161a306bd24fc10ca
parentdabd025173d805f2ba40dbf49b652fc3d1774540 (diff)
Move QFutureInterfaceBase::cleanContinuation() to removed_api
This method isn't used anymore, but we can't remove it entirely for BC reasons, because it was called from inline code. Change-Id: I9183c666c466030787ac7c2386706b50abf23eaa Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 73e1bc09e63394490d91a223b3479b46c1595d66) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/corelib/compat/removed_api.cpp17
-rw-r--r--src/corelib/thread/qfutureinterface.cpp12
-rw-r--r--src/corelib/thread/qfutureinterface.h2
3 files changed, 19 insertions, 12 deletions
diff --git a/src/corelib/compat/removed_api.cpp b/src/corelib/compat/removed_api.cpp
index 87dbe3c916..d56ea9f43a 100644
--- a/src/corelib/compat/removed_api.cpp
+++ b/src/corelib/compat/removed_api.cpp
@@ -169,6 +169,23 @@ QCalendar::QCalendar(QStringView name)
QCalendar::QCalendar(QLatin1StringView name)
: QCalendar(QAnyStringView{name}) {}
+#if QT_CONFIG(future)
+
+#include "qfutureinterface.h"
+#include "private/qfutureinterface_p.h"
+
+void QFutureInterfaceBase::cleanContinuation()
+{
+ if (!d)
+ return;
+
+ // This was called when the associated QPromise was being destroyed,
+ // but isn't used anymore.
+ QMutexLocker lock(&d->continuationMutex);
+ d->continuation = nullptr;
+}
+
+#endif // QT_CONFIG(future)
#include "qhashfunctions.h"
diff --git a/src/corelib/thread/qfutureinterface.cpp b/src/corelib/thread/qfutureinterface.cpp
index 8cdc10a94b..a82b7af873 100644
--- a/src/corelib/thread/qfutureinterface.cpp
+++ b/src/corelib/thread/qfutureinterface.cpp
@@ -829,18 +829,6 @@ void QFutureInterfaceBase::setContinuation(std::function<void(const QFutureInter
}
}
-void QFutureInterfaceBase::cleanContinuation()
-{
- if (!d)
- return;
-
- // This is called when the associated QPromise is being destroyed.
- // Clear the continuation, to make sure it doesn't keep any ref-counted
- // copies of this, so that the allocated memory can be freed.
- QMutexLocker lock(&d->continuationMutex);
- d->continuation = nullptr;
-}
-
void QFutureInterfaceBase::runContinuation() const
{
QMutexLocker lock(&d->continuationMutex);
diff --git a/src/corelib/thread/qfutureinterface.h b/src/corelib/thread/qfutureinterface.h
index eb251c7d14..820faa9ec2 100644
--- a/src/corelib/thread/qfutureinterface.h
+++ b/src/corelib/thread/qfutureinterface.h
@@ -183,7 +183,9 @@ protected:
void setContinuation(std::function<void(const QFutureInterfaceBase &)> func);
void setContinuation(std::function<void(const QFutureInterfaceBase &)> func,
QFutureInterfaceBasePrivate *continuationFutureData);
+#if QT_CORE_REMOVED_SINCE(6, 4)
void cleanContinuation();
+#endif
void runContinuation() const;
void setLaunchAsync(bool value);