diff options
author | Sona Kurazyan <sona.kurazyan@qt.io> | 2022-06-20 16:19:24 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-06-22 13:54:18 +0000 |
commit | 36202da4a93f43348f36131fb5695edd7a0f708a (patch) | |
tree | 0d8ed58b453ab02ffa39582161a306bd24fc10ca | |
parent | dabd025173d805f2ba40dbf49b652fc3d1774540 (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.cpp | 17 | ||||
-rw-r--r-- | src/corelib/thread/qfutureinterface.cpp | 12 | ||||
-rw-r--r-- | src/corelib/thread/qfutureinterface.h | 2 |
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); |