From a5229a57effb36a0ad42120829017c03ccf8982d Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 18 Jan 2022 21:43:51 +0100 Subject: [PATCH] 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::operator<< (260 times, avg 27 ms) 7115 ms: QList::append (263 times, avg 27 ms) 7071 ms: QList::emplaceBack (256 times, avg 27 ms) 6651 ms: QtPrivate::QMovableArrayOps::emplace (256 times, avg 25 ms) [...] 5649 ms: QArrayDataPointer::detachAndGrow (256 times, avg 22 ms) [...] 4668 ms: QArrayDataPointer::reallocateAndGrow (256 times, avg 18 ms) Task-number: QTBUG-97601 Pick-to: 6.3 Change-Id: Ib766e70e4f741e057f9032bf232160cf6e83f4b9 Reviewed-by: Thiago Macieira --- src/dbus/qdbusmessage.cpp | 6 ++++-- src/dbus/qdbusmessage.h | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/dbus/qdbusmessage.cpp b/src/dbus/qdbusmessage.cpp index 1ae6ea9c0cc..b619e00c62d 100644 --- a/src/dbus/qdbusmessage.cpp +++ b/src/dbus/qdbusmessage.cpp @@ -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 diff --git a/src/dbus/qdbusmessage.h b/src/dbus/qdbusmessage.h index 31ce8169a29..be483b67af5 100644 --- a/src/dbus/qdbusmessage.h +++ b/src/dbus/qdbusmessage.h @@ -86,8 +86,7 @@ public: { return createError(QDBusError::errorString(type), msg); } QDBusMessage createReply(const QList &arguments = QList()) const; - inline QDBusMessage createReply(const QVariant &argument) const - { return createReply(QList() << argument); } + QDBusMessage createReply(const QVariant &argument) const; QDBusMessage createErrorReply(const QString &name, const QString &msg) const; inline QDBusMessage createErrorReply(const QDBusError &err) const