summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qvariant.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-07-13 11:48:46 +0200
committerUlf Hermann <ulf.hermann@qt.io>2021-08-10 13:07:18 +0200
commit6f8ef8c64d4e7af92f585d10a1d5815fcb67831b (patch)
tree2f98f93371579e4c98b57e151317585b1440133e /src/corelib/kernel/qvariant.cpp
parent79a219862f45a11c948bab574afa961a73b72b73 (diff)
QVariant: Tolerate QObject* metatypes without QMetaObject
QMetaType does. QVariant should do the same. Pick-to: 6.2 Change-Id: I3419276b78b3b5ce8bd144dee92685195797d568 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Daniel Nicoletti <daniel.nicoletti@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/corelib/kernel/qvariant.cpp')
-rw-r--r--src/corelib/kernel/qvariant.cpp8
1 files changed, 5 insertions, 3 deletions
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;
}