diff options
author | Marc Mutz <marc.mutz@qt.io> | 2022-12-13 09:32:58 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2022-12-19 19:05:46 +0100 |
commit | 451dbca16c9ec4ef5a03a71b7b71a22291cf8a4b (patch) | |
tree | c0a377aca8aa57ac6c82edd41baa1f043f651e68 /src/corelib/text/qstring.h | |
parent | 413798cc01a3a2499c1f7683acdb68fd3466aae1 (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.h | 20 |
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 |