diff options
Diffstat (limited to 'src/corelib/tools/qcollator_win.cpp')
-rw-r--r-- | src/corelib/tools/qcollator_win.cpp | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/src/corelib/tools/qcollator_win.cpp b/src/corelib/tools/qcollator_win.cpp index 10cfdaa264..9d81de882f 100644 --- a/src/corelib/tools/qcollator_win.cpp +++ b/src/corelib/tools/qcollator_win.cpp @@ -87,30 +87,30 @@ void QCollatorPrivate::cleanup() { } - -int QCollator::compare(const QChar *s1, int len1, const QChar *s2, int len2) const +int QCollator::compare(QStringView s1, QStringView s2) const { if (d->isC()) - return QString::compare_helper(s1, len1, s2, len2, d->caseSensitivity); + return s1.compare(s2, d->caseSensitivity); if (d->dirty) d->init(); //* from Windows documentation * - // Returns one of the following values if successful. To maintain the C runtime convention of - // comparing strings, the value 2 can be subtracted from a nonzero return value. Then, the - // meaning of <0, ==0, and >0 is consistent with the C runtime. + // Returns one of the following values if successful. To maintain the C + // runtime convention of comparing strings, the value 2 can be subtracted + // from a nonzero return value. Then, the meaning of <0, ==0, and >0 is + // consistent with the C runtime. // [...] The function returns 0 if it does not succeed. // https://docs.microsoft.com/en-us/windows/desktop/api/stringapiset/nf-stringapiset-comparestringex#return-value #ifndef USE_COMPARESTRINGEX const int ret = CompareString(d->localeID, d->collator, - reinterpret_cast<const wchar_t*>(s1), len1, - reinterpret_cast<const wchar_t*>(s2), len2); + reinterpret_cast<const wchar_t *>(s1.data()), s1.size(), + reinterpret_cast<const wchar_t *>(s2.data()), s2.size()); #else const int ret = CompareStringEx(LPCWSTR(d->localeName.utf16()), d->collator, - reinterpret_cast<LPCWSTR>(s1), len1, - reinterpret_cast<LPCWSTR>(s2), len2, + reinterpret_cast<LPCWSTR>(s1.data()), s1.size(), + reinterpret_cast<LPCWSTR>(s2.data()), s2.size(), nullptr, nullptr, 0); #endif if (Q_LIKELY(ret)) @@ -132,16 +132,6 @@ int QCollator::compare(const QChar *s1, int len1, const QChar *s2, int len2) con return 0; } -int QCollator::compare(const QString &str1, const QString &str2) const -{ - return compare(str1.constData(), str1.size(), str2.constData(), str2.size()); -} - -int QCollator::compare(const QStringRef &s1, const QStringRef &s2) const -{ - return compare(s1.constData(), s1.size(), s2.constData(), s2.size()); -} - QCollatorSortKey QCollator::sortKey(const QString &string) const { if (d->dirty) @@ -170,7 +160,9 @@ QCollatorSortKey QCollator::sortKey(const QString &string) const NULL, NULL, 0); #endif if (finalSize == 0) { - qWarning() << "there were problems when generating the ::sortKey by LCMapStringW with error:" << GetLastError(); + qWarning() + << "there were problems when generating the ::sortKey by LCMapStringW with error:" + << GetLastError(); } return QCollatorSortKey(new QCollatorSortKeyPrivate(std::move(ret))); } |