aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <[email protected]>2025-08-14 23:14:51 +0200
committerFriedemann Kleint <[email protected]>2025-08-15 15:19:15 +0200
commit4c28e43bf63919263875225c3857812d9f8b121e (patch)
treefdd44cf3364f949cc8c855cd8b3907a5f40764d4
parenta377a3b253b6f584384ad6e22ca38f115b11fc6d (diff)
Fix crash checking base type for QObject* when checking QGraphicsObject hierarchiesHEADdev
Amends 6f996ff3439e69b3938e617135b266974802d5b1. Fixes: PYSIDE-3158 Task-number: PYSIDE-3115 Task-number: PYSIDE-3069 Pick-to: 6.9 6.9.2 Change-Id: I66bbc9d79d850c108411f9dcbe7e3090ad15b0b3 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
-rw-r--r--sources/pyside6/libpyside/pysidevariantutils.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/sources/pyside6/libpyside/pysidevariantutils.cpp b/sources/pyside6/libpyside/pysidevariantutils.cpp
index 729557919..558d32e00 100644
--- a/sources/pyside6/libpyside/pysidevariantutils.cpp
+++ b/sources/pyside6/libpyside/pysidevariantutils.cpp
@@ -127,9 +127,11 @@ QMetaType 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));