QDBusMessage: de-inline createReply(QVariant)

The building of the QList has percolated to the top of the lists of
most expensive template instantiations in Clang -ftime-trace PCH
builds of libQt6Gui.so:

  **** Templates that took longest to instantiate:
    7137 ms: QList<QVariant>::operator<< (260 times, avg 27 ms)
    7115 ms: QList<QVariant>::append (263 times, avg 27 ms)
    7071 ms: QList<QVariant>::emplaceBack<const QVariant &> (256 times, avg 27 ms)
    6651 ms: QtPrivate::QMovableArrayOps<QVariant>::emplace<const QVariant &> (256 times, avg 25 ms)
    [...]
    5649 ms: QArrayDataPointer<QVariant>::detachAndGrow (256 times, avg 22 ms)
    [...]
    4668 ms: QArrayDataPointer<QVariant>::reallocateAndGrow (256 times, avg 18 ms)

Task-number: QTBUG-97601
Pick-to: 6.3
Change-Id: Ib766e70e4f741e057f9032bf232160cf6e83f4b9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Marc Mutz 2022-01-18 21:43:51 +01:00
parent 559051851a
commit a5229a57ef
2 changed files with 5 additions and 4 deletions

View File

@ -512,11 +512,13 @@ QDBusMessage QDBusMessage::createErrorReply(const QString &name, const QString &
}
/*!
\fn QDBusMessage QDBusMessage::createReply(const QVariant &argument) const
Constructs a new DBus message representing a reply, with the
given \a argument.
*/
QDBusMessage QDBusMessage::createReply(const QVariant &argument) const
{
return createReply(QList{argument});
}
/*!
\fn QDBusMessage QDBusMessage::createErrorReply(const QDBusError &error) const

View File

@ -86,8 +86,7 @@ public:
{ return createError(QDBusError::errorString(type), msg); }
QDBusMessage createReply(const QList<QVariant> &arguments = QList<QVariant>()) const;
inline QDBusMessage createReply(const QVariant &argument) const
{ return createReply(QList<QVariant>() << argument); }
QDBusMessage createReply(const QVariant &argument) const;
QDBusMessage createErrorReply(const QString &name, const QString &msg) const;
inline QDBusMessage createErrorReply(const QDBusError &err) const