From 3057c4173b00e079bb3e24550a36293506a2ae44 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Thu, 31 May 2012 20:38:40 +0200 Subject: [PATCH] Simplify connectSlotsByName() implementation Use the new signal index-based API. Change-Id: I89263f5366726ef8213e45e5ab6575ebd6eab04a Reviewed-by: Olivier Goffart --- src/corelib/kernel/qobject.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 8ce5310..0e8f5cb 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; } } -- 2.7.4