From 777c7a2288ee111a668e17bbbb03b386c1f05737 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sun, 31 Jul 2022 10:02:35 -0700 Subject: [PATCH] QMetaObject: fix check for void's metatype in metaType() Pointer comparison is not sufficient on most platforms. Change-Id: I6f936da6f6e84d649f70fffd1706f8b1f0654a1e Reviewed-by: Fabian Kosmale --- src/corelib/kernel/qmetaobject.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 80c511107a7..48f27f9bc7d 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -6,6 +6,7 @@ #include "qmetatype.h" #include "qobject.h" #include "qmetaobject_p.h" +#include "qmetatype_p.h" #include #include @@ -405,7 +406,7 @@ QMetaType QMetaObject::metaType() const data:QMetaType(prop0), ..., QMetaType(propPropCount-1), QMetaType(class),... */ auto iface = this->d.metaTypes[d->propertyCount]; - if (iface == QtPrivate::qMetaTypeInterfaceForType()) + if (iface && QtMetaTypePrivate::isInterfaceFor(iface)) return QMetaType(); // return invalid meta-type for namespaces if (iface) return QMetaType(iface);