diff --git a/src/corelib/text/qlatin1stringview.h b/src/corelib/text/qlatin1stringview.h index 6b6c306b69b..257e7b30065 100644 --- a/src/corelib/text/qlatin1stringview.h +++ b/src/corelib/text/qlatin1stringview.h @@ -321,9 +321,6 @@ public: #endif // !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII) private: -#if !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII) - static inline int compare_helper(const QLatin1StringView &s1, const char *s2); -#endif Q_ALWAYS_INLINE constexpr void verify(qsizetype pos, qsizetype n = 0) const { Q_ASSERT(pos >= 0); @@ -331,6 +328,9 @@ private: Q_ASSERT(n >= 0); Q_ASSERT(n <= size() - pos); } + static int compare_helper(const QLatin1StringView &s1, const char *s2) noexcept + { return compare_helper(s1, s2, qstrlen(s2)); } + Q_CORE_EXPORT static int compare_helper(const QLatin1StringView &s1, const char *s2, qsizetype len) noexcept; Q_CORE_EXPORT static int compare_helper(const QChar *data1, qsizetype length1, QLatin1StringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; diff --git a/src/corelib/text/qstring.cpp b/src/corelib/text/qstring.cpp index 87f0cc2c485..46156669cfa 100644 --- a/src/corelib/text/qstring.cpp +++ b/src/corelib/text/qstring.cpp @@ -6452,6 +6452,18 @@ int QString::compare_helper(const QChar *data1, qsizetype length1, const char *d \overload compare() */ +/*! + \internal + \since 6.6 +*/ +int QLatin1StringView::compare_helper(const QLatin1StringView &s1, const char *s2, qsizetype len) noexcept +{ + // because qlatin1stringview.h can't include qutf8stringview.h + Q_ASSERT(len >= 0); + Q_ASSERT(s2 || len == 0); + return QtPrivate::compareStrings(s1, QUtf8StringView(s2, len)); +} + /*! \internal \since 4.5 diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index 26fb4e44ca2..62eb64d7758 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -1177,12 +1177,6 @@ QT_ASCII_CAST_WARN inline bool QLatin1StringView::operator<=(const QByteArray &s QT_ASCII_CAST_WARN inline bool QLatin1StringView::operator>=(const QByteArray &s) const { return QString::fromUtf8(s) <= *this; } -inline int QLatin1StringView::compare_helper(const QLatin1StringView &s1, const char *s2) -{ - return QString::compare(s1, QString::fromUtf8(s2)); -} - - QT_ASCII_CAST_WARN inline bool QString::operator==(const QByteArray &s) const { return QString::compare_helper(constData(), size(), s.constData(), s.size()) == 0; } QT_ASCII_CAST_WARN inline bool QString::operator!=(const QByteArray &s) const