summaryrefslogtreecommitdiffstats
path: root/src/corelib/text/qstring.h
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-12-13 09:32:58 +0100
committerMarc Mutz <marc.mutz@qt.io>2022-12-19 19:05:46 +0100
commit451dbca16c9ec4ef5a03a71b7b71a22291cf8a4b (patch)
treec0a377aca8aa57ac6c82edd41baa1f043f651e68 /src/corelib/text/qstring.h
parent413798cc01a3a2499c1f7683acdb68fd3466aae1 (diff)
QString: use new QUtf8StringView overloads
... to prepend/append/insert QByteArray and const char*, instead of the old inline QString::fromUtf8(), which litters the call sites with temporary QString objects. Can't use qToUtf8StringViewIgnoringNull() for QByteArray parameters to avoid the extra isNull() check, because some QString tests depend on whether we append/prepend/insert null or empty. Pick-to: 6.5 Fixes: QTBUG-109092 Change-Id: Ibf7b99aad844d0c2219ccc1c30f6666c5dfc7758 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/corelib/text/qstring.h')
-rw-r--r--src/corelib/text/qstring.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h
index 883fc08d3c..d6bbbee26b 100644
--- a/src/corelib/text/qstring.h
+++ b/src/corelib/text/qstring.h
@@ -1040,21 +1040,21 @@ public:
// these are needed, so it compiles with STL support enabled
QT_ASCII_CAST_WARN inline QString &prepend(const char *s)
- { return prepend(QString::fromUtf8(s)); }
+ { return prepend(QUtf8StringView(s)); }
QT_ASCII_CAST_WARN inline QString &prepend(const QByteArray &s)
- { return prepend(QString::fromUtf8(s)); }
+ { return prepend(QUtf8StringView(s)); }
QT_ASCII_CAST_WARN inline QString &append(const char *s)
- { return append(QString::fromUtf8(s)); }
+ { return append(QUtf8StringView(s)); }
QT_ASCII_CAST_WARN inline QString &append(const QByteArray &s)
- { return append(QString::fromUtf8(s)); }
+ { return append(QUtf8StringView(s)); }
QT_ASCII_CAST_WARN inline QString &insert(qsizetype i, const char *s)
- { return insert(i, QString::fromUtf8(s)); }
+ { return insert(i, QUtf8StringView(s)); }
QT_ASCII_CAST_WARN inline QString &insert(qsizetype i, const QByteArray &s)
- { return insert(i, QString::fromUtf8(s)); }
+ { return insert(i, QUtf8StringView(s)); }
QT_ASCII_CAST_WARN inline QString &operator+=(const char *s)
- { return append(QString::fromUtf8(s)); }
+ { return append(QUtf8StringView(s)); }
QT_ASCII_CAST_WARN inline QString &operator+=(const QByteArray &s)
- { return append(QString::fromUtf8(s)); }
+ { return append(QUtf8StringView(s)); }
QT_ASCII_CAST_WARN inline bool operator==(const char *s) const;
QT_ASCII_CAST_WARN inline bool operator!=(const char *s) const;
@@ -1508,7 +1508,7 @@ inline QString operator+(QChar s1, const QString &s2)
{ QString t(s1); t += s2; return t; }
# if !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
QT_ASCII_CAST_WARN inline QString operator+(const QString &s1, const char *s2)
-{ QString t(s1); t += QString::fromUtf8(s2); return t; }
+{ QString t(s1); t += QUtf8StringView(s2); return t; }
QT_ASCII_CAST_WARN inline QString operator+(QString &&lhs, const char *rhs)
{ QT_IGNORE_DEPRECATIONS(return std::move(lhs += rhs);) }
QT_ASCII_CAST_WARN inline QString operator+(const char *s1, const QString &s2)
@@ -1516,7 +1516,7 @@ QT_ASCII_CAST_WARN inline QString operator+(const char *s1, const QString &s2)
QT_ASCII_CAST_WARN inline QString operator+(const QByteArray &ba, const QString &s)
{ QString t = QString::fromUtf8(ba); t += s; return t; }
QT_ASCII_CAST_WARN inline QString operator+(const QString &s, const QByteArray &ba)
-{ QString t(s); t += QString::fromUtf8(ba); return t; }
+{ QString t(s); t += QUtf8StringView(ba); return t; }
QT_ASCII_CAST_WARN inline QString operator+(QString &&lhs, const QByteArray &rhs)
{ QT_IGNORE_DEPRECATIONS(return std::move(lhs += rhs);) }
# endif // QT_NO_CAST_FROM_ASCII