From dd1349240f4172a38160e203fe18850eb8871efb Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 17 Mar 2025 16:00:43 +0100 Subject: [PATCH] QSqlQueryModel: memoize roleNames() The return value of this function is constant and some users (QML?) may call this function often, so memoize the result of the function instead of re-creating the QHash on every call. Amends 40206a9f6d7635bb19305d1c8d74908808e3529e. Not picking to Qt 5, because I'm unsure about the state of magic statics there, and I don't want to take out the Q_GLOBAL_STATIC sledgehammer. Pick-to: 6.8 6.5 Change-Id: I8311e93ea16982c82e8312e1e104d95ed062fe6b Reviewed-by: Edward Welbourne (cherry picked from commit 0d0a151e0d3a93bcd289751b56959a7655a049d2) Reviewed-by: Qt Cherry-pick Bot --- src/sql/models/qsqlquerymodel.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sql/models/qsqlquerymodel.cpp b/src/sql/models/qsqlquerymodel.cpp index 81e798c97f2..d8e10343854 100644 --- a/src/sql/models/qsqlquerymodel.cpp +++ b/src/sql/models/qsqlquerymodel.cpp @@ -193,9 +193,10 @@ bool QSqlQueryModel::canFetchMore(const QModelIndex &parent) const */ QHash QSqlQueryModel::roleNames() const { - return QHash { + static const QHash names = { { Qt::DisplayRole, QByteArrayLiteral("display") } }; + return names; } /*! \internal