From c00b8652b564d841365ff856493808ed23a57876 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 16 May 2022 11:57:53 +0200 Subject: [PATCH] Fix int/qsizetype mismatches in qstring.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ChangeLog][QtCore][QString] Fixed result truncation mod INT_MAX in fromStdSstring(), fromStdU16string(), fromStdU32string(), and fromStdWstring(). [ChangeLog][QtCore][QAnyStringView] Fixed result truncation mod INT_MAX in asLatin1StringView(). [ChangeLog][QtCore][QUtf8StringView] Fixed result truncation mod INT_MAX in toString(). Change-Id: I944c561018a6ab4581ad6b1d71ec1ba1accba4a4 Reviewed-by: Sona Kurazyan Reviewed-by: MÃ¥rten Nordheim (cherry picked from commit ff053b39a3083813f89b1a3b6e735c047c09890f) Reviewed-by: Qt CI Bot --- src/corelib/text/qstring.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index c94856ecde1..e4282084a9e 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -356,7 +356,7 @@ constexpr QAnyStringView::QAnyStringView(QLatin1String str) noexcept constexpr QLatin1String QAnyStringView::asLatin1StringView() const { Q_ASSERT(isLatin1()); - return QLatin1String{m_data_utf8, int(size())}; + return QLatin1String{m_data_utf8, size()}; } template @@ -1189,8 +1189,7 @@ ushort QStringView::toUShort(bool *ok, int base) const template QString QBasicUtf8StringView::toString() const { - Q_ASSERT(size() == int(size())); - return QString::fromUtf8(data(), int(size())); + return QString::fromUtf8(data(), size()); } // @@ -1451,7 +1450,7 @@ inline std::string QString::toStdString() const { return toUtf8().toStdString(); } inline QString QString::fromStdString(const std::string &s) -{ return fromUtf8(s.data(), int(s.size())); } +{ return fromUtf8(s.data(), qsizetype(s.size())); } inline std::wstring QString::toStdWString() const { @@ -1462,16 +1461,16 @@ inline std::wstring QString::toStdWString() const } inline QString QString::fromStdWString(const std::wstring &s) -{ return fromWCharArray(s.data(), int(s.size())); } +{ return fromWCharArray(s.data(), qsizetype(s.size())); } inline QString QString::fromStdU16String(const std::u16string &s) -{ return fromUtf16(s.data(), int(s.size())); } +{ return fromUtf16(s.data(), qsizetype(s.size())); } inline std::u16string QString::toStdU16String() const { return std::u16string(reinterpret_cast(data()), length()); } inline QString QString::fromStdU32String(const std::u32string &s) -{ return fromUcs4(s.data(), int(s.size())); } +{ return fromUcs4(s.data(), qsizetype(s.size())); } inline std::u32string QString::toStdU32String() const {