summaryrefslogtreecommitdiffstats
path: root/src/corelib/serialization/qxmlstream.cpp
diff options
context:
space:
mode:
authorAhmad Samir <a.samirh78@gmail.com>2023-04-18 13:19:57 +0200
committerMarc Mutz <marc.mutz@qt.io>2023-07-06 03:28:21 +0000
commiteffb3bddf63eb6c53d81ce6b0a30be6e3e80e189 (patch)
treebf9f5d798e60e52a1034ad6f1d80af2633590c0d /src/corelib/serialization/qxmlstream.cpp
parentb2b58624791cde5c2b24b9397f02ccad5b394ea6 (diff)
QXmlStreamReader: use std::optional
The optional-like FastScanNameResult was used to make some previous changes backport-able to Qt 5.15 (std::optional is C++17 whereas Qt 5.15 requires C++14). Amends commit 6326bec46a618c72feba4a2bb994c4d475050aed. Pick-to: 6.6 6.5 Change-Id: I409e1da83f82927c1eb24c47c1414c0c7ab1bf5b Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib/serialization/qxmlstream.cpp')
-rw-r--r--src/corelib/serialization/qxmlstream.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp
index 946d79367c4..802909df00e 100644
--- a/src/corelib/serialization/qxmlstream.cpp
+++ b/src/corelib/serialization/qxmlstream.cpp
@@ -1297,8 +1297,7 @@ inline qsizetype QXmlStreamReaderPrivate::fastScanContentCharList()
}
// Fast scan an XML attribute name (e.g. "xml:lang").
-inline QXmlStreamReaderPrivate::FastScanNameResult
-QXmlStreamReaderPrivate::fastScanName(Value *val)
+inline std::optional<qsizetype> QXmlStreamReaderPrivate::fastScanName(Value *val)
{
qsizetype n = 0;
uint c;
@@ -1307,7 +1306,7 @@ QXmlStreamReaderPrivate::fastScanName(Value *val)
// This is too long to be a sensible name, and
// can exhaust memory, or the range of decltype(*prefix)
raiseNamePrefixTooLongError();
- return {};
+ return std::nullopt;
}
switch (c) {
case '\n':
@@ -1341,18 +1340,18 @@ QXmlStreamReaderPrivate::fastScanName(Value *val)
putChar(':');
--n;
}
- return FastScanNameResult(n);
+ return n;
case ':':
if (val) {
if (val->prefix == 0) {
val->prefix = qint16(n + 2);
} else { // only one colon allowed according to the namespace spec.
putChar(c);
- return FastScanNameResult(n);
+ return n;
}
} else {
putChar(c);
- return FastScanNameResult(n);
+ return n;
}
Q_FALLTHROUGH();
default:
@@ -1366,7 +1365,7 @@ QXmlStreamReaderPrivate::fastScanName(Value *val)
qsizetype pos = textBuffer.size() - n;
putString(textBuffer, pos);
textBuffer.resize(pos);
- return FastScanNameResult(0);
+ return 0;
}
enum NameChar { NameBeginning, NameNotBeginning, NotName };