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.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp
index bd1cfe5a1b8..83f670d9a50 100644
--- a/src/corelib/kernel/qmetaobject.cpp
+++ b/src/corelib/kernel/qmetaobject.cpp
@@ -2331,13 +2331,19 @@ int QMetaMethod::revision() const
{
if (!mobj)
return 0;
- if (data.flags() & MethodRevisioned) {
+ if ((data.flags() & MethodRevisioned) == 0)
+ return 0;
+#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
+ if (priv(mobj->d.data)->revision < 13) {
+ // revision number located elsewhere
int offset = priv(mobj->d.data)->methodData
+ priv(mobj->d.data)->methodCount * Data::Size
+ QMetaMethodPrivate::get(this)->ownMethodIndex();
return mobj->d.data[offset];
}
- return 0;
+#endif
+
+ return mobj->d.data[data.parameters() - 1];
}
/*!