From d0aedfab0991b23aaa09746d6c9b83b8d28755c5 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 18 Jul 2022 16:12:54 +0200 Subject: [PATCH] QCollator: add comments re: missing handling of large strings Task-number: QTBUG-105038 Change-Id: I4777ef5c5543d6fd550d4a7ceb099835c6302a12 Reviewed-by: Edward Welbourne --- src/corelib/text/qcollator_icu.cpp | 2 ++ src/corelib/text/qcollator_win.cpp | 1 + 2 files changed, 3 insertions(+) diff --git a/src/corelib/text/qcollator_icu.cpp b/src/corelib/text/qcollator_icu.cpp index afd58b5d5e..84f9c51537 100644 --- a/src/corelib/text/qcollator_icu.cpp +++ b/src/corelib/text/qcollator_icu.cpp @@ -81,6 +81,7 @@ int QCollator::compare(QStringView s1, QStringView s2) const d->ensureInitialized(); if (d->collator) { + // truncating sizes (QTBUG-105038) return ucol_strcoll(d->collator, reinterpret_cast(s1.data()), s1.size(), reinterpret_cast(s2.data()), s2.size()); @@ -98,6 +99,7 @@ QCollatorSortKey QCollator::sortKey(const QString &string) const if (d->collator) { QByteArray result(16 + string.size() + (string.size() >> 2), Qt::Uninitialized); + // truncating sizes (QTBUG-105038) int size = ucol_getSortKey(d->collator, (const UChar *)string.constData(), string.size(), (uint8_t *)result.data(), result.size()); if (size > result.size()) { diff --git a/src/corelib/text/qcollator_win.cpp b/src/corelib/text/qcollator_win.cpp index 405337924f..b588f5ff46 100644 --- a/src/corelib/text/qcollator_win.cpp +++ b/src/corelib/text/qcollator_win.cpp @@ -96,6 +96,7 @@ QCollatorSortKey QCollator::sortKey(const QString &string) const if (d->isC()) return QCollatorSortKey(new QCollatorSortKeyPrivate(string)); + // truncating sizes (QTBUG-105038) int size = LCMapStringW(d->localeID, LCMAP_SORTKEY | d->collator, reinterpret_cast(string.constData()), string.size(), 0, 0);