diff options
author | Ahmad Samir <a.samirh78@gmail.com> | 2023-04-12 13:10:26 +0200 |
---|---|---|
committer | Ahmad Samir <a.samirh78@gmail.com> | 2023-06-28 00:11:20 +0300 |
commit | 1a423ce4372d18a779f3c0d746d5283d9a425839 (patch) | |
tree | 5b48ec7b291750ec5973e7671161ac3d4613bb4b /src/corelib/serialization | |
parent | d1f3ffc80b0e15a4342fd0e5a334f42e378d401b (diff) |
QXmlStreamReader: change fastScanName() to take a Value*
For easier debugging, e.g. to print out value.len and value.prefix.
Pick-to: 6.6 6.5 6.5.2 6.2 5.15
Change-Id: Ib0eed38772f899502962f578775d34ea2744fdde
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib/serialization')
-rw-r--r-- | src/corelib/serialization/qxmlstream.cpp | 16 | ||||
-rw-r--r-- | src/corelib/serialization/qxmlstream.g | 3 | ||||
-rw-r--r-- | src/corelib/serialization/qxmlstream_p.h | 2 | ||||
-rw-r--r-- | src/corelib/serialization/qxmlstreamparser_p.h | 3 |
4 files changed, 13 insertions, 11 deletions
diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp index f630aa9743..24e9357d7b 100644 --- a/src/corelib/serialization/qxmlstream.cpp +++ b/src/corelib/serialization/qxmlstream.cpp @@ -1296,7 +1296,7 @@ inline qsizetype QXmlStreamReaderPrivate::fastScanContentCharList() return n; } -inline qsizetype QXmlStreamReaderPrivate::fastScanName(qint16 *prefix) +inline qsizetype QXmlStreamReaderPrivate::fastScanName(Value *val) { qsizetype n = 0; uint c; @@ -1333,16 +1333,16 @@ inline qsizetype QXmlStreamReaderPrivate::fastScanName(qint16 *prefix) case '+': case '*': putChar(c); - if (prefix && *prefix == n+1) { - *prefix = 0; + if (val && val->prefix == n + 1) { + val->prefix = 0; putChar(':'); --n; } return n; case ':': - if (prefix) { - if (*prefix == 0) { - *prefix = qint16(n + 2); + if (val) { + if (val->prefix == 0) { + val->prefix = qint16(n + 2); } else { // only one colon allowed according to the namespace spec. putChar(c); return n; @@ -1358,8 +1358,8 @@ inline qsizetype QXmlStreamReaderPrivate::fastScanName(qint16 *prefix) } } - if (prefix) - *prefix = 0; + if (val) + val->prefix = 0; qsizetype pos = textBuffer.size() - n; putString(textBuffer, pos); textBuffer.resize(pos); diff --git a/src/corelib/serialization/qxmlstream.g b/src/corelib/serialization/qxmlstream.g index 59ca1a15c7..8bde0e4319 100644 --- a/src/corelib/serialization/qxmlstream.g +++ b/src/corelib/serialization/qxmlstream.g @@ -1419,7 +1419,8 @@ space_opt ::= space; qname ::= LETTER; /. case $rule_number: { - sym(1).len += fastScanName(&sym(1).prefix); + Value &val = sym(1); + val.len += fastScanName(&val); if (atEnd) { resume($rule_number); return false; diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h index b6e54aad89..8bc83327b4 100644 --- a/src/corelib/serialization/qxmlstream_p.h +++ b/src/corelib/serialization/qxmlstream_p.h @@ -498,7 +498,7 @@ public: qsizetype fastScanLiteralContent(); qsizetype fastScanSpace(); qsizetype fastScanContentCharList(); - qsizetype fastScanName(qint16 *prefix = nullptr); + qsizetype fastScanName(Value *val = nullptr); inline qsizetype fastScanNMTOKEN(); diff --git a/src/corelib/serialization/qxmlstreamparser_p.h b/src/corelib/serialization/qxmlstreamparser_p.h index 7040cc3a48..89a23b9b33 100644 --- a/src/corelib/serialization/qxmlstreamparser_p.h +++ b/src/corelib/serialization/qxmlstreamparser_p.h @@ -947,7 +947,8 @@ bool QXmlStreamReaderPrivate::parse() break; case 262: { - sym(1).len += fastScanName(&sym(1).prefix); + Value &val = sym(1); + val.len += fastScanName(&val); if (atEnd) { resume(262); return false; |