From ef1be84551ae1e131dbee8212fd1bd6064e889da Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 2 Jun 2023 13:58:26 +0200 Subject: [PATCH] QStringDecoder: add a char16_t overload of appendToBuffer(QChar*, ~~~) More and more code in Qt uses char16_t instead of QChar, even QString::Data, so reduce the impedance mismatch with such code and supply a char16_t overload in parallel to the existing QChar* one. [ChangeLog][QtCore][QStringDecoder] Added appendToBuffer() overload for char16_t*, complementing the existing overload taking QChar*. Task-number: QTBUG-106198 Change-Id: I0cb8ab22c897c14b1318a676f5212cc0cf1b72b7 Reviewed-by: Fabian Kosmale --- src/corelib/text/qstringconverter.cpp | 6 ++++++ src/corelib/text/qstringconverter.h | 2 ++ .../corelib/text/qstringconverter/tst_qstringconverter.cpp | 4 ++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/corelib/text/qstringconverter.cpp b/src/corelib/text/qstringconverter.cpp index 90f277ba610..7f68c5113eb 100644 --- a/src/corelib/text/qstringconverter.cpp +++ b/src/corelib/text/qstringconverter.cpp @@ -2374,4 +2374,10 @@ const char *QStringConverter::nameForEncoding(QStringConverter::Encoding e) \sa requiredSpace */ +/*! + \fn char16_t *QStringDecoder::appendToBuffer(char16_t *out, QByteArrayView in) + \since 6.6 + \overload +*/ + QT_END_NAMESPACE diff --git a/src/corelib/text/qstringconverter.h b/src/corelib/text/qstringconverter.h index f10aa3b6d3f..373c1ad1e91 100644 --- a/src/corelib/text/qstringconverter.h +++ b/src/corelib/text/qstringconverter.h @@ -140,6 +140,8 @@ public: } return iface->toUtf16(out, ba, &state); } + char16_t *appendToBuffer(char16_t *out, QByteArrayView ba) + { return reinterpret_cast(appendToBuffer(reinterpret_cast(out), ba)); } Q_CORE_EXPORT static QStringDecoder decoderForHtml(QByteArrayView data); diff --git a/tests/auto/corelib/text/qstringconverter/tst_qstringconverter.cpp b/tests/auto/corelib/text/qstringconverter/tst_qstringconverter.cpp index c93983293c4..253749ede99 100644 --- a/tests/auto/corelib/text/qstringconverter/tst_qstringconverter.cpp +++ b/tests/auto/corelib/text/qstringconverter/tst_qstringconverter.cpp @@ -252,8 +252,8 @@ void tst_QStringConverter::invalidConverter() decoder.resetState(); QVERIFY(!decoder.hasError()); - QChar buffer[100]; - QChar *position = decoder.appendToBuffer(buffer, "Even more"); + char16_t buffer[100]; + char16_t *position = decoder.appendToBuffer(buffer, "Even more"); QCOMPARE(position, buffer); QVERIFY(decoder.hasError()); }