Go to file
Marc Mutz e8dcbaaaf6 QFutureSynchronizer: fix aliasing problem in setFuture()
When setFuture() was handed an element of m_futures, it would hold the
reference to past the clear(), which invalidates said reference.

Fix by taking the future by value instead of by cref.

While append() is not affected, as QList::append() already guards
against aliasing, do the same change there, both for consistency as
well as to optimize the common case of passing rvalues. It also means
we can use the rvalue overload of QList::append(), skipping the alias
analysis in the lvalue QList::append().

[ChangeLog][QtConcurrent][QFutureSynchronizer] Fixed a crash in
setFuture() if the argument was already a member of
QFutureSynchronizer::futures().

Pick-to: 6.6 6.5 6.2
Change-Id: Ic0b212b9f265a746df9a6beb6272a5415d131442
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-06-21 14:20:42 +00:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
bin Add simple project generation based on existing source files 2023-02-08 12:59:19 +01:00
cmake Android:CMake: Add argument to bundle OpenSSL libs for internal tests 2023-06-21 01:04:04 +03:00
coin Add feature to disable building tests 2023-06-12 13:46:07 +00:00
config.tests Remove the mandatory x86-64 features from its feature list 2023-05-31 14:55:37 -07:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc Move imagine/musicplayer to tests/manual/imagine/musicplayer 2023-06-21 15:19:02 +02:00
examples rhiwindow example: Make -g option (OpenGL) work on macOS 2023-06-21 15:09:03 +02:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
libexec Pass native path in qt-internal-configure-tests 2023-04-17 23:32:34 +02:00
LICENSES Clarify license of SHA-1 algorithm 2023-04-26 16:36:18 +02:00
mkspecs Make WASM export names different across modules 2023-06-20 09:08:03 +02:00
qmake Doc: Remove \target commands from the qmake manual 2023-06-21 13:19:51 +00:00
src QFutureSynchronizer: fix aliasing problem in setFuture() 2023-06-21 14:20:42 +00:00
tests QFutureSynchronizer: fix aliasing problem in setFuture() 2023-06-21 14:20:42 +00:00
util Make WASM export names different across modules 2023-06-20 09:08:03 +02:00
.cmake.conf Bump version to 6.7.0 2023-06-12 14:46:07 +01:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore git: ignore ._* files 2023-03-28 10:44:57 +02:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
CMakeLists.txt Introduce QT_ALLOW_SYMLINK_IN_PATHS flag 2023-05-03 19:44:45 +02:00
config_help.txt CMake: Remove the dysfunctional -testcocoon configure option 2023-06-16 23:39:01 +02:00
configure Retrieve an old -redo behavior 2023-02-07 18:51:58 +00:00
configure.bat Retrieve an old -redo behavior 2023-02-07 18:51:58 +00:00
configure.cmake Disable TEST_separate_debug_info when building with MSVC or on Apple 2023-06-17 23:21:18 +02:00
dependencies.yaml Re-add dependencies.yaml now that qt5.git wip/qt6 builds fine 2019-09-18 13:19:31 +02:00
qt_cmdline.cmake CMake: Remove the dysfunctional -testcocoon configure option 2023-06-16 23:39:01 +02:00
sync.profile rhi: Make it a QPA-style private but semi-public API 2023-05-21 15:42:58 +02:00