summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qmetaobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel/qmetaobject.cpp')
-rw-r--r--src/corelib/kernel/qmetaobject.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp
index e6b0b9043c7..a5d34eac707 100644
--- a/src/corelib/kernel/qmetaobject.cpp
+++ b/src/corelib/kernel/qmetaobject.cpp
@@ -735,9 +735,14 @@ inline int QMetaObjectPrivate::indexOfMethodRelative(const QMetaObject **baseObj
Q_UNREACHABLE_RETURN(-1);
}
+ // Is iterating backwards here significant?
for (; i >= end; --i) {
auto data = QMetaMethod::fromRelativeMethodIndex(m, i);
if (methodMatch(m, data, name, types)) {
+ if (QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
+ && what == QMetaMethod::Slot && data.methodType() != QMetaMethod::Slot) {
+ return -1;
+ }
*baseObject = m;
return i;
}