From 8bde91bc2a71f4e43ddcf4c165b1c46a6572a871 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 15 Jul 2022 13:46:39 -0700 Subject: [PATCH] QMetaObject: simplify printMethodNotFoundWarning() a little We don't need to copy the candidate name into the QVarLengthArray buffer, we just need that buffer for the parameters. Change-Id: I36b24183fbd041179f2ffffd17021ba2fd2b8251 Reviewed-by: Fabian Kosmale --- src/corelib/kernel/qmetaobject.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 555e49206a5..af949780ae3 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -1357,20 +1357,17 @@ printMethodNotFoundWarning(const QMetaObject *meta, QLatin1StringView name, qsiz } QVarLengthArray sig; - sig.append(name.data(), name.size()); - sig.append('('); for (qsizetype i = 1; i < paramCount; ++i) { sig.append(names[i], qstrlen(names[i])); sig.append(','); } - if (paramCount == 1) - sig.append(')'); // no parameters - else - sig[sig.size() - 1] = ')'; - sig.append('\0'); + if (paramCount != 1) + sig.resize(sig.size() - 1); - qWarning("QMetaObject::invokeMethod: No such method %s::%s%s", - meta->className(), sig.constData(), candidateMessage.constData()); + qWarning("QMetaObject::invokeMethod: No such method %s::%.*s(%.*s)%.*s", + meta->className(), int(name.size()), name.constData(), + int(sig.size()), sig.constData(), + int(candidateMessage.size()), candidateMessage.constData()); return false; }