From 3d2c8d76ecc492f37a0384b01c03065b6aae56c6 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Fri, 17 Feb 2012 21:48:52 +0100 Subject: [PATCH] Don't call metaObject() several times It's sufficient to call it once per invokeMethod. Change-Id: I1db826027eca87c799f216d65e27c801a23e64e2 Reviewed-by: Bradley T. Hughes Reviewed-by: Olivier Goffart --- src/corelib/kernel/qmetaobject.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 5ffa2d81dd..09d6713a43 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -1151,18 +1151,19 @@ bool QMetaObject::invokeMethod(QObject *obj, sig[sig.size() - 1] = ')'; sig.append('\0'); - int idx = obj->metaObject()->indexOfMethod(sig.constData()); + const QMetaObject *meta = obj->metaObject(); + int idx = meta->indexOfMethod(sig.constData()); if (idx < 0) { QByteArray norm = QMetaObject::normalizedSignature(sig.constData()); - idx = obj->metaObject()->indexOfMethod(norm.constData()); + idx = meta->indexOfMethod(norm.constData()); } - if (idx < 0 || idx >= obj->metaObject()->methodCount()) { + if (idx < 0 || idx >= meta->methodCount()) { qWarning("QMetaObject::invokeMethod: No such method %s::%s", - obj->metaObject()->className(), sig.constData()); + meta->className(), sig.constData()); return false; } - QMetaMethod method = obj->metaObject()->method(idx); + QMetaMethod method = meta->method(idx); return method.invoke(obj, type, ret, val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); }