summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-02-17 21:48:52 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-20 11:28:18 +0100
commit3d2c8d76ecc492f37a0384b01c03065b6aae56c6 (patch)
tree59a428b0eee402201b8d0a5607944c2e2e7c2f50
parent44ab16f93d4007f0bbd1591e2830bae0332aeef2 (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.cpp11
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);
}