diff options
| author | Marc Mutz <marc.mutz@qt.io> | 2024-12-18 10:48:25 +0100 |
|---|---|---|
| committer | Ivan Solovev <ivan.solovev@qt.io> | 2024-12-19 11:11:30 +0000 |
| commit | 44366d07dca047f096d1366c43ba549c97150074 (patch) | |
| tree | 68f99dc3bf7ea405b37ccfefda9e1a3d3adfe24b /src/corelib/serialization/qxmlstream.cpp | |
| parent | 752de4a0aabc305af16251a55edf247e043b1b18 (diff) | |
QXmlStreamReader: use QOffsetStringArray::viewAt()
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.9 6.8 6.5
Change-Id: Ib50369aed6e8248fb88f43c7569c8a435c2b152e
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/serialization/qxmlstream.cpp')
| -rw-r--r-- | src/corelib/serialization/qxmlstream.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp index 1547150a2f6..9dcdf490412 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<int>(ctxt))); + return QLatin1StringView(QXmlStreamReader_XmlContextString.viewAt(static_cast<int>(ctxt))); } #endif // feature xmlstreamreader |
