Fix int/qsizetype mismatches in qstring.h

[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().

Pick-to: 6.3 6.2
Change-Id: I944c561018a6ab4581ad6b1d71ec1ba1accba4a4
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
bb10
Marc Mutz 2022-05-16 11:57:53 +02:00
parent 53a842f66b
commit ff053b39a3
1 changed files with 6 additions and 7 deletions

View File

@ -404,7 +404,7 @@ constexpr QAnyStringView::QAnyStringView(QLatin1StringView str) noexcept
constexpr QLatin1StringView QAnyStringView::asLatin1StringView() const
{
Q_ASSERT(isLatin1());
return {m_data_utf8, int(size())};
return {m_data_utf8, size()};
}
template <typename Visitor>
@ -1240,8 +1240,7 @@ ushort QStringView::toUShort(bool *ok, int base) const
template <bool UseChar8T>
QString QBasicUtf8StringView<UseChar8T>::toString() const
{
Q_ASSERT(size() == int(size()));
return QString::fromUtf8(data(), int(size()));
return QString::fromUtf8(data(), size());
}
//
@ -1502,7 +1501,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
{
@ -1513,16 +1512,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<const char16_t*>(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
{