summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qobject.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2019-04-30 09:55:13 +0200
committerFabian Kosmale <fabian.kosmale@qt.io>2020-06-11 19:39:52 +0200
commitee709e32366135fb7507b74b8e75d637772b166e (patch)
treedda16876e67078d9fc35b8d3ffdd9bfc8360ada9 /src/corelib/kernel/qobject.cpp
parent58a7e4f0bc5e9290cc205762d51adc5806b034fd (diff)
QMetaMethod: clean up offset handling
Centralize the offset handling in one place and avoid lots of magic numbers in various places. Expose the number of ints per method in QMetaObjectPrivate as a constant, so that code in other places can access it via private API. Change-Id: I59790287a17ea47e6160ec65d9c8d0aaee748947 Reviewed-by: Simon Hausmann <hausmann@gmail.com> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/corelib/kernel/qobject.cpp')
-rw-r--r--src/corelib/kernel/qobject.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 11ec534434..615bc63f1d 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -2562,9 +2562,9 @@ bool QObject::isSignalConnected(const QMetaMethod &signal) const
Q_ASSERT_X(signal.mobj->cast(this) && signal.methodType() == QMetaMethod::Signal,
"QObject::isSignalConnected" , "the parameter must be a signal member of the object");
- uint signalIndex = (signal.handle - QMetaObjectPrivate::get(signal.mobj)->methodData)/QMetaObjectPrivate::IntsPerMethod;
+ uint signalIndex = signal.relativeMethodIndex();
- if (signal.mobj->d.data[signal.handle + 4] & MethodCloned)
+ if (signal.data.flags() & MethodCloned)
signalIndex = QMetaObjectPrivate::originalClone(signal.mobj, signalIndex);
signalIndex += QMetaObjectPrivate::signalOffset(signal.mobj);
@@ -2610,7 +2610,7 @@ void QMetaObjectPrivate::memberIndexes(const QObject *obj,
m = m->d.superdata;
if (!m)
return;
- *signalIndex = *methodIndex = (member.handle - get(member.mobj)->methodData)/QMetaObjectPrivate::IntsPerMethod;
+ *signalIndex = *methodIndex = member.relativeMethodIndex();
int signalOffset;
int methodOffset;