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 <fabian.kosmale@qt.io>
This commit is contained in:
Thiago Macieira 2022-07-15 13:46:39 -07:00
parent 7f640aa2eb
commit 8bde91bc2a

View File

@ -1357,20 +1357,17 @@ printMethodNotFoundWarning(const QMetaObject *meta, QLatin1StringView name, qsiz
}
QVarLengthArray<char, 512> 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;
}