summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qobject.cpp
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-05-31 20:38:40 +0200
committerQt by Nokia <qt-info@nokia.com>2012-06-01 20:34:31 +0200
commit3057c4173b00e079bb3e24550a36293506a2ae44 (patch)
tree3d574f3f0a088a541da17fa9ae99a7e9dee2a68a /src/corelib/kernel/qobject.cpp
parent98c7afb8d6e8724bb12906b65795df91b4bb55f9 (diff)
Simplify connectSlotsByName() implementation
Use the new signal index-based API. Change-Id: I89263f5366726ef8213e45e5ab6575ebd6eab04a Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib/kernel/qobject.cpp')
-rw-r--r--src/corelib/kernel/qobject.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 8ce5310dee..0e8f5cbe74 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -3210,16 +3210,11 @@ void QMetaObject::connectSlotsByName(QObject *o)
if (sigIndex < 0) { // search for compatible signals
const QMetaObject *smo = co->metaObject();
int slotlen = qstrlen(slot + len + 4) - 1;
- for (int k = 0; k < smo->methodCount(); ++k) {
- QMetaMethod method = smo->method(k);
- if (method.methodType() != QMetaMethod::Signal)
- continue;
-
+ for (int k = 0; k < QMetaObjectPrivate::absoluteSignalCount(smo); ++k) {
+ QMetaMethod method = QMetaObjectPrivate::signal(smo, k);
if (!qstrncmp(method.methodSignature().constData(), slot + len + 4, slotlen)) {
smeta = method.enclosingMetaObject();
- int signalOffset, methodOffset;
- computeOffsets(smeta, &signalOffset, &methodOffset);
- sigIndex = k + - methodOffset + signalOffset;
+ sigIndex = k;
break;
}
}