aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <[email protected]>2025-08-14 23:14:51 +0200
committerFriedemann Kleint <[email protected]>2025-08-18 12:18:13 +0200
commite9a4bb962b17799e1b176ce69dedd6f65c36d4f8 (patch)
tree22664ef59e5790a8a1140f0cc69dc129644aff34
parent9476875e100ec4db35d8f126af4019a1df972f9b (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.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));