aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2025-08-14 23:14:51 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2025-08-18 17:18:06 +0000
commit6da8efa1b92b4d4c1b988710a1ffd799221b5e5e (patch)
treee914e404f42b41a57db211b8b477f0e0237c3650
parenteeb73e3a28e445d55a21cfe69d7cae4de4980c5f (diff)
Fix crash checking base type for QObject* when checking QGraphicsObject hierarchies
Amends 6f996ff3439e69b3938e617135b266974802d5b1. Fixes: PYSIDE-3158 Task-number: PYSIDE-3115 Task-number: PYSIDE-3069 Change-Id: I66bbc9d79d850c108411f9dcbe7e3090ad15b0b3 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 4c28e43bf63919263875225c3857812d9f8b121e) (cherry picked from commit e9a4bb962b17799e1b176ce69dedd6f65c36d4f8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp b/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp
index 670c3bf7f..c51d22747 100644
--- a/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp
+++ b/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp
@@ -52,9 +52,11 @@ QMetaType QVariant_resolveMetaType(PyTypeObject *type)
// QGraphicsItem::itemChange() to work.
if (qstrcmp(typeName, "QGraphicsObject*") == 0 && size > 1) {
auto *firstBaseType = reinterpret_cast<PyTypeObject *>(PyTuple_GetItem(type->tp_bases, 0));
- const char *firstBaseTypeName = Shiboken::ObjectType::getOriginalName(firstBaseType);
- if (firstBaseTypeName != nullptr && qstrcmp(firstBaseTypeName, "QObject*") == 0)
- ++i;
+ if (SbkObjectType_Check(firstBaseType)) {
+ const char *firstBaseTypeName = Shiboken::ObjectType::getOriginalName(firstBaseType);
+ if (firstBaseTypeName != nullptr && qstrcmp(firstBaseTypeName, "QObject*") == 0)
+ ++i;
+ }
}
for ( ; i < size; ++i) {
auto baseType = reinterpret_cast<PyTypeObject *>(PyTuple_GetItem(type->tp_bases, i));