diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-04-12 10:20:34 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-04-12 11:59:01 +0200 |
commit | 152ec44d1c0ac3da91bc6018f8c039e599f60df3 (patch) | |
tree | 2d276c39e05afd0a829cd2e8322d314c5dcb9e52 /sources/pyside6/PySide6/QtCore/typesystem_core_common.xml | |
parent | 4a04afc95d348c8f26919a2f084ee80fa404e7d9 (diff) |
Fix potential undefined behavior in type discovery of class hierarchies
Use the %B-placeholder for base classes always, changing the generated
expressions from:
reinterpret_cast<QMouseEvent *>(cptr)->type() == QEvent::MouseMove
to
reinterpret_cast<QEvent *>(cptr)->type() == QEvent::MouseMove
Remove the copyable-attributes since object-type is not
copyable anyways.
Pick-to: 6.7
Task-number: PYSIDE-2675
Change-Id: I89092b0afd6901e0f8cf5144eb1185ab1d80a0d5
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6/PySide6/QtCore/typesystem_core_common.xml')
-rw-r--r-- | sources/pyside6/PySide6/QtCore/typesystem_core_common.xml | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml index 933a01aa1..0a08928f5 100644 --- a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml +++ b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml @@ -703,7 +703,8 @@ <enum-type name="ClockType" since="4.7"/> </value-type> - <object-type name="QAbstractTableModel" polymorphic-id-expression="qobject_cast<QAbstractTableModel*>(%1)"> + <object-type name="QAbstractTableModel" + polymorphic-id-expression="qobject_cast<QAbstractTableModel*>(%B)"> <extra-includes> <include file-name="QStringList" location="global"/> <include file-name="QSize" location="global"/> @@ -1694,7 +1695,8 @@ <value-type name="QItemSelectionRange"> </value-type> - <object-type name="QAbstractProxyModel" polymorphic-id-expression="qobject_cast<QAbstractProxyModel*>(%1)"> + <object-type name="QAbstractProxyModel" + polymorphic-id-expression="qobject_cast<QAbstractProxyModel*>(%B)"> <extra-includes> <include file-name="QItemSelection" location="global"/> <include file-name="QStringList" location="global"/> @@ -1898,7 +1900,8 @@ </modify-argument> </modify-function> </object-type> - <object-type name="QAbstractListModel" polymorphic-id-expression="qobject_cast<QAbstractListModel*>(%1)"> + <object-type name="QAbstractListModel" + polymorphic-id-expression="qobject_cast<QAbstractListModel*>(%B)"> <extra-includes> <include file-name="QStringList" location="global"/> <include file-name="QSize" location="global"/> @@ -2765,15 +2768,18 @@ file="../glue/qtcore.cpp" snippet="repr-qevent"/> </add-function> </object-type> - <object-type name="QChildEvent" polymorphic-id-expression="%1->type() == QEvent::ChildAdded || %1->type() == QEvent::ChildPolished || %1->type() == QEvent::ChildRemoved"> + <object-type name="QChildEvent" + polymorphic-id-expression="%B->type() == QEvent::ChildAdded || %B->type() == QEvent::ChildPolished || %B->type() == QEvent::ChildRemoved"> <modify-function signature="child()const"> <modify-argument index="return"> <define-ownership class="target" owner="default"/> </modify-argument> </modify-function> </object-type> - <object-type name="QTimerEvent" polymorphic-id-expression="%1->type() == QEvent::Timer"/> - <object-type name="QDynamicPropertyChangeEvent" polymorphic-id-expression="%1->type() == QEvent::DynamicPropertyChange"/> + <object-type name="QTimerEvent" + polymorphic-id-expression="%B->type() == QEvent::Timer"/> + <object-type name="QDynamicPropertyChangeEvent" + polymorphic-id-expression="%B->type() == QEvent::DynamicPropertyChange"/> <object-type name="QDataStream" stream="yes"> |