QDebug: finish porting put{String,ByteArray} to qsizetype

The underlying QTextStream seems to support qsizetype-sized data and
the private API of QDebug that is under consideration in this patch
takes size_t, but, as so often, there're int/uint casts in-between
that break things.

Widen the int/uint casts to qsizetype/size_t, respectively.

Task-number: QTBUG-103525
Change-Id: I10bca093dc2d6f136871c94ca43f5b42fd1c8971
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
(cherry picked from commit bc2b8411c9e510a1101ed09b627317854c6e7d45)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Marc Mutz 2022-08-17 17:58:42 +02:00 committed by Qt Cherry-pick Bot
parent 51495e36da
commit a886dd9f0c
2 changed files with 4 additions and 3 deletions

View File

@ -320,7 +320,7 @@ void QDebug::putString(const QChar *begin, size_t length)
if (stream->noQuotes) {
// no quotes, write the string directly too (no pretty-printing)
// this respects the QTextStream state, though
stream->ts.d_ptr->putString(begin, int(length));
stream->ts.d_ptr->putString(begin, qsizetype(length));
} else {
// we'll reset the QTextStream formatting mechanisms, so save the state
QDebugStateSaver saver(*this);
@ -338,7 +338,8 @@ void QDebug::putByteArray(const char *begin, size_t length, Latin1Content conten
if (stream->noQuotes) {
// no quotes, write the string directly too (no pretty-printing)
// this respects the QTextStream state, though
QString string = content == ContainsLatin1 ? QString::fromLatin1(begin, int(length)) : QString::fromUtf8(begin, int(length));
QString string = content == ContainsLatin1 ? QString::fromLatin1(begin, qsizetype(length))
: QString::fromUtf8(begin, qsizetype(length));
stream->ts.d_ptr->putString(string);
} else {
// we'll reset the QTextStream formatting mechanisms, so save the state

View File

@ -106,7 +106,7 @@ public:
inline QDebug &operator<<(double t) { stream->ts << t; return maybeSpace(); }
inline QDebug &operator<<(const char* t) { stream->ts << QString::fromUtf8(t); return maybeSpace(); }
inline QDebug &operator<<(const char16_t *t) { stream->ts << QStringView(t); return maybeSpace(); }
inline QDebug &operator<<(const QString & t) { putString(t.constData(), uint(t.length())); return maybeSpace(); }
inline QDebug &operator<<(const QString & t) { putString(t.constData(), size_t(t.length())); return maybeSpace(); }
inline QDebug &operator<<(QStringView s) { putString(s.data(), size_t(s.size())); return maybeSpace(); }
inline QDebug &operator<<(QUtf8StringView s) { putByteArray(reinterpret_cast<const char*>(s.data()), s.size(), ContainsBinary); return maybeSpace(); }
inline QDebug &operator<<(QLatin1StringView t) { putByteArray(t.latin1(), t.size(), ContainsLatin1); return maybeSpace(); }