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.

Pick-to: 6.4
Change-Id: I9183c666c466030787ac7c2386706b50abf23eaa
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Sona Kurazyan 2022-06-20 16:19:24 +02:00
parent cf9cd8cc08
commit 73e1bc09e6
3 changed files with 19 additions and 12 deletions

View File

@ -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"

View File

@ -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);

View File

@ -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);