qt6-bb10/tests/auto/corelib
Sona Kurazyan a8794503eb Fix memory leaks when capturing a QFuture in its continuation
Capturing a QFuture in the continuations attached to it results in
memory leaks. QFuture's ref-counted data can only be deleted when the
last copy referencing the data gets deleted. The saved continuation
that keeps a copy of the future (as in case of the lambda capture) will
prevent the data from being deleted. So we need to manually clean the
continuation after it is run. But this doesn't solve the problem if the
continuation isn't run. In that case, clean the continuation in the
destructor of the associated QPromise.

To avoid similar leaks, internally we should always create futures via
QPromise, instead of the ref-counted QFutureInterface, so that the
continuation is always cleaned in the destructor. Currently QFuture
continuations and QtFuture::when* methods use QFutureInterface directly,
which will be fixed by the follow-up commits.

Fixes: QTBUG-99534
Pick-to: 6.3 6.2
Change-Id: Ic13e7dffd8cb25bd6b87e5416fe4d1a97af74c9b
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-01-21 01:51:20 +01:00
..
animation tst_qanimationgroup: fix memleaks 2022-01-05 08:22:00 +01:00
global tst_qglobalstatic is halted on INTEGRITY device 2021-12-20 10:14:38 +02:00
io Remove unused .qrc files 2022-01-17 23:17:01 +01:00
itemmodels tst_QItemModel: fix memleaks 2022-01-05 08:22:00 +01:00
kernel tst_QMetaType: remove call to pthread_yield() 2022-01-19 20:57:19 -08:00
mimetypes Remove unused .qrc files 2022-01-17 23:17:01 +01:00
platform Android: Add runOnMainAndroidThread() under QNativeInterface 2021-05-26 23:24:11 +00:00
plugin QFactoryLoader: add setExtraSearchPath() (for QPA plugins' use) 2022-01-20 15:53:48 -08:00
serialization JSON: Further improve the duplicate handling in the parser 2022-01-21 00:53:49 +01:00
text QLatin1String: perform the comparison to another QL1S using memcmp() 2022-01-17 22:17:01 +00:00
thread Fix memory leaks when capturing a QFuture in its continuation 2022-01-21 01:51:20 +01:00
time Fix an assertion failure in massageAdjustedDateTime() 2022-01-13 19:47:22 +01:00
tools QVersionNumber: port fromString() to QAnyStringView 2022-01-18 01:31:33 +01:00
CMakeLists.txt Add tests for QAndroidApplication's sdkVersion and activity 2021-05-13 01:41:36 +03:00