From 42545eaea092b2ba3a762d2356008db0434b998a Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Fri, 15 Jun 2012 12:23:00 +0200 Subject: [PATCH] QMetaMethod::invoke: Use normalizedType() to normalize return type MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Bradley T. Hughes Reviewed-by: Olivier Goffart --- src/corelib/kernel/qmetaobject.cpp | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 417c49b..3e82de7 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; } } -- 2.7.4