aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2025-11-25 17:46:49 +0100
committerMarc Mutz <marc.mutz@qt.io>2025-11-26 16:14:13 +0100
commit0b1074b6da9ac15f66938ba68c1b038fa00e2bb3 (patch)
tree63a8cf4e00b2d7113b8a92e6859604dd7f0bffdc /src
parent433624d4cd865b32b78ae30db99363bd8b000135 (diff)
QJSList: restore NRVO in slice(), join() specialization
... for <QQmlListProperty<QObject>, QObject *>>. Like in the primary template, return the same object in each return statement, fixing GCC -Wnrvo, which we're going to add to headersclean. Amends e84686415187455a7153d61ca82478053f13e3f9. Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-142146 Change-Id: I38e9e8374e51d147cdaf4276fa791489117ee4e3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/qml/jsapi/qjslist.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/qml/jsapi/qjslist.h b/src/qml/jsapi/qjslist.h
index d604e266f2..199a15a323 100644
--- a/src/qml/jsapi/qjslist.h
+++ b/src/qml/jsapi/qjslist.h
@@ -217,10 +217,10 @@ struct QJSList<QQmlListProperty<QObject>, QObject *> : private QJSListIndexClam
QString join(const QString &separator = QStringLiteral(",")) const
{
+ QString result;
if (!m_list->count || !m_list->at)
- return QString();
+ return result;
- QString result;
for (qsizetype i = 0, end = m_list->count(m_list); i < end; ++i) {
if (i != 0)
result += separator;
@@ -236,12 +236,12 @@ struct QJSList<QQmlListProperty<QObject>, QObject *> : private QJSListIndexClam
}
QObjectList slice(qsizetype start) const
{
+ QObjectList result;
if (!m_list->count || !m_list->at)
- return QObjectList();
+ return result;
const qsizetype size = m_list->count(m_list);
const qsizetype clampedStart = clamp(start, size);
- QObjectList result;
result.reserve(size - clampedStart);
for (qsizetype i = clampedStart; i < size; ++i)
result.append(m_list->at(m_list, i));
@@ -249,13 +249,13 @@ struct QJSList<QQmlListProperty<QObject>, QObject *> : private QJSListIndexClam
}
QObjectList slice(qsizetype start, qsizetype end) const
{
+ QObjectList result;
if (!m_list->count || !m_list->at)
- return QObjectList();
+ return result;
const qsizetype size = m_list->count(m_list);
const qsizetype clampedStart = clamp(start, size);
const qsizetype clampedEnd = clamp(end, size, clampedStart);
- QObjectList result;
result.reserve(clampedEnd - clampedStart);
for (qsizetype i = clampedStart; i < clampedEnd; ++i)
result.append(m_list->at(m_list, i));