diff options
author | Sona Kurazyan <sona.kurazyan@qt.io> | 2020-10-30 11:21:01 +0100 |
---|---|---|
committer | Sona Kurazyan <sona.kurazyan@qt.io> | 2020-10-30 17:19:26 +0100 |
commit | ff0ba7e2d7b91fd5809cb314935a1ca1a436f6c9 (patch) | |
tree | b1a9ca252e2953c23fdd62645e231ef8f92b4ac9 /tests/auto/corelib/io/qlockfile | |
parent | 48a13327c663a9e1409cc98936190f3d1565fcc2 (diff) |
Forbid implicit conversions between QFuture and other types
- Remove the casting operator of QFuture<T> to T. It calls
QFuture::result(), which may lead to undefined behavior if the user
has moved the results from QFuture via QFuture::takeResult() before
trying to do the conversion.
- Disable implicit conversion of QFuture<T> to QFuture<void>, by making
the constructor explicit. If the users really intend to do the
conversion, they should do it explicitly.
[ChangeLog][Source-Incompatible Changes][QFuture] Implicit conversions
of QFuture<T> to T and to QFuture<void> have been disabled. Use
QFuture::result() or QFuture::takeResult() where you need to convert
QFuture<T> to T. Use the explicit QFuture<void>(const QFuture<T> &)
constructor to convert QFuture<T> to QFuture<void>.
Change-Id: I153d4137d36365b1611ac934fb3ac2eb667fdd6c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'tests/auto/corelib/io/qlockfile')
-rw-r--r-- | tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp b/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp index 54d2182e5c..431ca4dd5a 100644 --- a/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp +++ b/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp @@ -249,7 +249,7 @@ void tst_QLockFile::waitForLock() if (!releaseEarly) // only let the thread release the lock now semMainThreadDone.release(); - QVERIFY(ret); // waits for the thread to finish + QVERIFY(ret.result()); // waits for the thread to finish } void tst_QLockFile::staleLockFromCrashedProcess_data() |