summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-06-15 12:23:00 +0200
committerQt by Nokia <qt-info@nokia.com>2012-06-20 09:34:40 +0200
commit42545eaea092b2ba3a762d2356008db0434b998a (patch)
treea1b09502659cca0d4415c7bfda64c3b6daf75685 /src/corelib/kernel
parent8b24ed162cff3df7473345dedc14a412fabe8936 (diff)
QMetaMethod::invoke: Use normalizedType() to normalize return type
The code was probably written before QMetaObject::normalizedType() was introduced. The behavior is covered by the existing tests tst_QMetaObject::invokeMetaMember and tst_QMetaObject::invokeBlockingQueuedMetaMember. Change-Id: Ib1c3b3e4dff37947defd1dfdcc860df44539aa3a Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qmetaobject.cpp16
1 files changed, 2 insertions, 14 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp
index 417c49bc42..3e82de78ea 100644
--- a/src/corelib/kernel/qmetaobject.cpp
+++ b/src/corelib/kernel/qmetaobject.cpp
@@ -2056,20 +2056,8 @@ bool QMetaMethod::invoke(QObject *object,
const char *retType = typeName();
if (qstrcmp(returnValue.name(), retType) != 0) {
// normalize the return value as well
- // the trick here is to make a function signature out of the return type
- // so that we can call normalizedSignature() and avoid duplicating code
- QByteArray unnormalized;
- int len = qstrlen(returnValue.name());
-
- unnormalized.reserve(len + 3);
- unnormalized = "_("; // the function is called "_"
- unnormalized.append(returnValue.name());
- unnormalized.append(')');
-
- QByteArray normalized = QMetaObject::normalizedSignature(unnormalized.constData());
- normalized.truncate(normalized.length() - 1); // drop the ending ')'
-
- if (qstrcmp(normalized.constData() + 2, retType) != 0)
+ QByteArray normalized = QMetaObject::normalizedType(returnValue.name());
+ if (qstrcmp(normalized.constData(), retType) != 0)
return false;
}
}