diff options
author | Friedemann Kleint <[email protected]> | 2025-08-14 23:14:51 +0200 |
---|---|---|
committer | Friedemann Kleint <[email protected]> | 2025-08-18 12:18:13 +0200 |
commit | e9a4bb962b17799e1b176ce69dedd6f65c36d4f8 (patch) | |
tree | 22664ef59e5790a8a1140f0cc69dc129644aff34 | |
parent | 9476875e100ec4db35d8f126af4019a1df972f9b (diff) |
Fix crash checking base type for QObject* when checking QGraphicsObject hierarchies6.9
Amends 6f996ff3439e69b3938e617135b266974802d5b1.
Fixes: PYSIDE-3158
Task-number: PYSIDE-3115
Task-number: PYSIDE-3069
Pick-to: 6.9.2
Change-Id: I66bbc9d79d850c108411f9dcbe7e3090ad15b0b3
Reviewed-by: Cristian Maureira-Fredes <[email protected]>
(cherry picked from commit 4c28e43bf63919263875225c3857812d9f8b121e)
-rw-r--r-- | sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp | 8 |
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)); |