diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-02-17 21:48:52 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-20 11:28:18 +0100 |
commit | 3d2c8d76ecc492f37a0384b01c03065b6aae56c6 (patch) | |
tree | 59a428b0eee402201b8d0a5607944c2e2e7c2f50 | |
parent | 44ab16f93d4007f0bbd1591e2830bae0332aeef2 (diff) |
Don't call metaObject() several times
It's sufficient to call it once per invokeMethod.
Change-Id: I1db826027eca87c799f216d65e27c801a23e64e2
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
-rw-r--r-- | src/corelib/kernel/qmetaobject.cpp | 11 |
1 files 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); } |