From 6f8ef8c64d4e7af92f585d10a1d5815fcb67831b Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 13 Jul 2021 11:48:46 +0200 Subject: QVariant: Tolerate QObject* metatypes without QMetaObject QMetaType does. QVariant should do the same. Pick-to: 6.2 Change-Id: I3419276b78b3b5ce8bd144dee92685195797d568 Reviewed-by: Fabian Kosmale Reviewed-by: Daniel Nicoletti Reviewed-by: Lars Knoll --- src/corelib/kernel/qvariant.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/corelib/kernel') diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index 5cf8636dcd..c2c39efea3 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -2341,9 +2341,11 @@ static bool numericEquals(const QVariant::Private *d1, const QVariant::Private * #ifndef QT_BOOTSTRAPPED static bool canConvertMetaObject(QMetaType fromType, QMetaType toType) { - if ((fromType.flags() & QMetaType::PointerToQObject) && (toType.flags() & QMetaType::PointerToQObject)) { - return fromType.metaObject()->inherits(toType.metaObject()) || - toType.metaObject()->inherits(fromType.metaObject()); + if ((fromType.flags() & QMetaType::PointerToQObject) + && (toType.flags() & QMetaType::PointerToQObject)) { + const QMetaObject *f = fromType.metaObject(); + const QMetaObject *t = toType.metaObject(); + return f && t && (f->inherits(t) || t->inherits(f)); } return false; } -- cgit v1.2.3