From f3aaecc26ee2700dbb2e9be7824ed62217f82285 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 18 Dec 2024 10:48:25 +0100 Subject: [PATCH] QXmlStreamReader: use QOffsetStringArray::viewAt() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This auto-computes the string's length without a NUL-byte scan, and also fixes a GCC 14 unity-build C++23 warning: In function ‘constexpr qsizetype QtPrivate::lengthHelperPointer(const Char*) [with Char = char]’, inlined from ‘constexpr qsizetype QtPrivate::lengthHelperPointer(const Char*) [with Char = char]’ at qbytearrayview.h:69:28, inlined from ‘constexpr QLatin1String::QLatin1String(const char*)’ at qlatin1stringview.h:52:62, inlined from ‘constexpr QLatin1StringView contextString(QXmlStreamReaderPrivate::XmlContext)’ at qxmlstream.cpp:814:90, inlined from ‘void QXmlStreamReaderPrivate::checkToken()’ at qxmlstream.cpp:4018:85: qbytearrayview.h:77:16: warning: ‘strlen’ argument missing terminating nul [-Wstringop-overread] 77 | while (data[i] != Char(0)) | ~~~~^ In file included from unity_0_cxx.cxx:412: qxmlstream.cpp: In member function ‘void QXmlStreamReaderPrivate::checkToken()’: qxmlstream.cpp:769:23: note: referenced argument declared here 769 | static constexpr auto QXmlStreamReader_XmlContextString = qOffsetStringArray( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Amends c4301be7d5f94852e1b17f2c2989d5ca807855d4, which was picked to 5.15, but didn't use QOffsetStringArray there (and unity-builds exist only since 6.5), so only picking to 6.5. Pick-to: 6.5 Change-Id: Ib50369aed6e8248fb88f43c7569c8a435c2b152e Reviewed-by: Ivan Solovev Reviewed-by: Thiago Macieira (cherry picked from commit 44366d07dca047f096d1366c43ba549c97150074) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 072f2a224164bb091bc6b4c6f20376bcdd88984f) --- src/corelib/serialization/qxmlstream.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp index 0fe8c87779a..99c1eec202c 100644 --- a/src/corelib/serialization/qxmlstream.cpp +++ b/src/corelib/serialization/qxmlstream.cpp @@ -811,7 +811,7 @@ QString QXmlStreamReader::tokenString() const */ static constexpr QLatin1StringView contextString(QXmlStreamReaderPrivate::XmlContext ctxt) { - return QLatin1StringView(QXmlStreamReader_XmlContextString.at(static_cast(ctxt))); + return QLatin1StringView(QXmlStreamReader_XmlContextString.viewAt(static_cast(ctxt))); } #endif // feature xmlstreamreader