From ff0ba7e2d7b91fd5809cb314935a1ca1a436f6c9 Mon Sep 17 00:00:00 2001 From: Sona Kurazyan Date: Fri, 30 Oct 2020 11:21:01 +0100 Subject: Forbid implicit conversions between QFuture and other types - Remove the casting operator of QFuture 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 to QFuture, 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 to T and to QFuture have been disabled. Use QFuture::result() or QFuture::takeResult() where you need to convert QFuture to T. Use the explicit QFuture(const QFuture &) constructor to convert QFuture to QFuture. Change-Id: I153d4137d36365b1611ac934fb3ac2eb667fdd6c Reviewed-by: Volker Hilsheimer Reviewed-by: Jarek Kobus --- tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/auto/corelib/io/qlockfile') 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() -- cgit v1.2.3