Go to file
Mårten Nordheim e9eddfd856 Fix rare double-free in QObject machinery
As exposed by tst_QObjectRace::destroyRace we would sometimes end up
with a double-free when destroying a QSlotObject in multi-threaded
scenarios. One free would be done in ~QObject as the receiver was being
destroyed while the other free was done when deleting a QMetaCallEvent
object after we realized it was not needed because the receiver was
destroyed.

Since we can be in a separate thread from the receiver we should lock
before referencing the connection object.

Amends b7d073e990.

Change-Id: Icb53862dc880ae9a4e5581a1a9ee693573f7d9c7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-08-19 07:27:45 +00:00
bin syncqt: Fix to work correctly when the line endings are LF in Win-msys 2019-08-15 16:16:06 +09:00
config.tests Merge remote-tracking branch 'origin/5.12' into 5.13 2019-08-12 13:23:11 +02:00
dist Merge remote-tracking branch 'origin/5.12' into dev 2019-06-25 13:04:27 +02:00
doc Introduce Q_NAMESPACE_EXPORT 2019-06-28 06:47:29 +02:00
examples Cleanup QtWidgets animation examples 2019-08-17 09:51:32 +02:00
lib
mkspecs Fix build without features.poll_{ppoll,pollts,poll,select} 2019-08-18 13:22:35 +09:00
qmake Merge remote-tracking branch 'origin/5.13' into dev 2019-08-16 01:00:33 +02:00
src Fix rare double-free in QObject machinery 2019-08-19 07:27:45 +00:00
tests Make Qt aware of symlinks and shortcuts on Windows 2019-08-16 23:25:33 +02:00
util Extract a large format string as a module constant value 2019-08-08 18:04:05 +02:00
.gitattributes
.gitignore qfloat16: Check in the tables to Git 2019-06-03 10:42:53 -07:00
.qmake.conf Require opt-out for using QLinkedList 2019-08-07 20:09:10 +00:00
.tag
config_help.txt Add -qtlibinfix-plugins for renaming Qt plugins according to QT_LIBINFIX 2019-05-16 06:22:25 +00:00
configure Fix typo in configure script 2019-07-24 10:42:16 +09:00
configure.bat Configure: simplify logic 2019-03-14 12:13:58 +00:00
configure.json Merge remote-tracking branch 'origin/5.13' into dev 2019-07-17 10:44:21 +02:00
configure.pri Merge remote-tracking branch 'origin/5.12' into 5.13 2019-08-12 13:23:11 +02:00
header.BSD Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.FDL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL-EXCEPT Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3-COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-NOGPL2 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-ONLY Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.MIT qsimd: add support for new x86 CPU features 2018-05-05 06:20:07 +00:00
INSTALL INSTALL: Remove outdated reference to Windows CE 2019-02-13 13:01:57 +00:00
LICENSE.FDL
LICENSE.GPL2
LICENSE.GPL3
LICENSE.GPL3-EXCEPT
LICENSE.LGPL3
LICENSE.LGPLv3 Remove LICENSE.GPLv3, LICENSE.LGPLv21, LGPL_EXCEPTION.txt 2018-04-16 11:02:14 +00:00
LICENSE.QT-LICENSE-AGREEMENT-4.0 Replace commercial preview license with Qt License Agreement 4.0 2018-06-21 11:39:15 +00:00
qtbase.pro nuke configure -host-option 2016-12-13 18:55:59 +00:00
sync.profile CMake: Add support for auto-importing plugins in CMake 2019-08-12 18:23:58 +02:00