qt6-bb10/tests/auto/corelib/kernel
Volker Hilsheimer 3be99799a6 Don't access QObjectPrivate::declarativeData unguarded
The QObjectPrivate::declarativeData member is stored in a union with
currentChildBeingDeleted. The QObject destructor always sets the
currentChildBeingDeleted member of the union. It also sets the
isDeletingChildren bool, which is the only way to find out which union
member we can safely access.

While the QObject destructor is deleting children and isDeletingChildren
is set, we must not access the declarativeData member of the union.

Add a test case that initializes the function pointers for the
declarative handlers and constructs a situation where an object
emits a signal while it is destroying children.

Fixes: QTBUG-105286
Pick-to: 6.4 6.3 6.3.2 6.2 5.15
Change-Id: Iea5ba2f7843b6926a8d157be166e6044d98d6c02
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-08-20 03:55:12 +02:00
..
qapplicationstatic Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qcoreapplication Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qdeadlinetimer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qelapsedtimer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qeventdispatcher Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qeventloop Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qjnienvironment Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qjniobject Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qjnitypes Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmath Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetacontainer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetaenum Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetamethod Remove assertion from ownMethodIndex that breaks tests 2022-08-10 00:48:31 +02:00
qmetaobject Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetaobjectbuilder Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetaproperty Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetatype Rename QT_DISABLE_DEPRECATED_BEFORE -> QT_DISABLE_DEPRECATED_UP_TO 2022-08-19 23:52:05 +02:00
qmimedata Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qobject Don't access QObjectPrivate::declarativeData unguarded 2022-08-20 03:55:12 +02:00
qpointer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qproperty Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qsharedmemory Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qsignalblocker Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qsignalmapper Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qsocketnotifier Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qsystemsemaphore Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qtimer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qtranslator Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qvariant Rename QT_DISABLE_DEPRECATED_BEFORE -> QT_DISABLE_DEPRECATED_UP_TO 2022-08-19 23:52:05 +02:00
qwineventnotifier Add license headers to cmake files 2022-08-03 17:14:55 +02:00
CMakeLists.txt Add license headers to cmake files 2022-08-03 17:14:55 +02:00