diff --git a/src/corelib/compat/removed_api.cpp b/src/corelib/compat/removed_api.cpp index 5ee844409a0..4a9cef2d41e 100644 --- a/src/corelib/compat/removed_api.cpp +++ b/src/corelib/compat/removed_api.cpp @@ -493,3 +493,19 @@ void QXmlStreamWriter::writeStartElement(const QString &namespaceUri, const QStr // order sections alphabetically to reduce chances of merge conflicts #endif // QT_CORE_REMOVED_SINCE(6, 5) + +#if QT_CORE_REMOVED_SINCE(6, 6) + +#include "qstring.h" + +qsizetype QString::toUcs4_helper(const ushort *uc, qsizetype length, uint *out) +{ + return toUcs4_helper(reinterpret_cast(uc), length, + reinterpret_cast(out)); +} + +// #include "qotherheader.h" +// // implement removed functions from qotherheader.h +// order sections alphabetically to reduce chances of merge conflicts + +#endif // QT_CORE_REMOVED_SINCE(6, 6) diff --git a/src/corelib/text/qstring.cpp b/src/corelib/text/qstring.cpp index e2eb27a4d4b..d0836c3b929 100644 --- a/src/corelib/text/qstring.cpp +++ b/src/corelib/text/qstring.cpp @@ -2419,7 +2419,7 @@ void qtWarnAboutInvalidRegularExpression(const QString &pattern, const char *whe toStdU32String() */ -qsizetype QString::toUcs4_helper(const ushort *uc, qsizetype length, uint *out) +qsizetype QString::toUcs4_helper(const char16_t *uc, qsizetype length, char32_t *out) { qsizetype count = 0; diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index b1ab89ec725..1da4fada9c9 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -859,7 +859,10 @@ private: static QByteArray toLatin1_helper_inplace(QString &); static QByteArray toUtf8_helper(const QString &); static QByteArray toLocal8Bit_helper(const QChar *data, qsizetype size); - static qsizetype toUcs4_helper(const ushort *uc, qsizetype length, uint *out); // ### Qt 7 char16_t +#if QT_CORE_REMOVED_SINCE(6, 6) + static qsizetype toUcs4_helper(const ushort *uc, qsizetype length, uint *out); +#endif + static qsizetype toUcs4_helper(const char16_t *uc, qsizetype length, char32_t *out); static qlonglong toIntegral_helper(QStringView string, bool *ok, int base); static qulonglong toIntegral_helper(QStringView string, bool *ok, uint base); void replace_helper(size_t *indices, qsizetype nIndices, qsizetype blen, const QChar *after, qsizetype alen); @@ -1031,8 +1034,7 @@ qsizetype QStringView::toWCharArray(wchar_t *array) const memcpy(array, src, sizeof(QChar) * size()); return size(); } else { - return QString::toUcs4_helper(reinterpret_cast(data()), size(), - reinterpret_cast(array)); + return QString::toUcs4_helper(utf16(), size(), reinterpret_cast(array)); } } @@ -1228,8 +1230,8 @@ inline QString QString::fromStdU32String(const std::u32string &s) inline std::u32string QString::toStdU32String() const { std::u32string u32str(size(), char32_t(0)); - qsizetype len = toUcs4_helper(reinterpret_cast(constData()), - size(), reinterpret_cast(&u32str[0])); + const qsizetype len = toUcs4_helper(reinterpret_cast(data()), + size(), u32str.data()); u32str.resize(len); return u32str; }