diff options
-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); |