summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);