QXmlStreamReader: change fastScanName() to take a Value*
For easier debugging, e.g. to print out value.len and value.prefix. Change-Id: Ib0eed38772f899502962f578775d34ea2744fdde Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit 1a423ce4372d18a779f3c0d746d5283d9a425839) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
c131e159b0
commit
47c6473680
@ -1296,7 +1296,7 @@ inline qsizetype QXmlStreamReaderPrivate::fastScanContentCharList()
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline qsizetype QXmlStreamReaderPrivate::fastScanName(qint16 *prefix)
|
inline qsizetype QXmlStreamReaderPrivate::fastScanName(Value *val)
|
||||||
{
|
{
|
||||||
qsizetype n = 0;
|
qsizetype n = 0;
|
||||||
uint c;
|
uint c;
|
||||||
@ -1333,16 +1333,16 @@ inline qsizetype QXmlStreamReaderPrivate::fastScanName(qint16 *prefix)
|
|||||||
case '+':
|
case '+':
|
||||||
case '*':
|
case '*':
|
||||||
putChar(c);
|
putChar(c);
|
||||||
if (prefix && *prefix == n+1) {
|
if (val && val->prefix == n + 1) {
|
||||||
*prefix = 0;
|
val->prefix = 0;
|
||||||
putChar(':');
|
putChar(':');
|
||||||
--n;
|
--n;
|
||||||
}
|
}
|
||||||
return n;
|
return n;
|
||||||
case ':':
|
case ':':
|
||||||
if (prefix) {
|
if (val) {
|
||||||
if (*prefix == 0) {
|
if (val->prefix == 0) {
|
||||||
*prefix = qint16(n + 2);
|
val->prefix = qint16(n + 2);
|
||||||
} else { // only one colon allowed according to the namespace spec.
|
} else { // only one colon allowed according to the namespace spec.
|
||||||
putChar(c);
|
putChar(c);
|
||||||
return n;
|
return n;
|
||||||
@ -1358,8 +1358,8 @@ inline qsizetype QXmlStreamReaderPrivate::fastScanName(qint16 *prefix)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prefix)
|
if (val)
|
||||||
*prefix = 0;
|
val->prefix = 0;
|
||||||
qsizetype pos = textBuffer.size() - n;
|
qsizetype pos = textBuffer.size() - n;
|
||||||
putString(textBuffer, pos);
|
putString(textBuffer, pos);
|
||||||
textBuffer.resize(pos);
|
textBuffer.resize(pos);
|
||||||
|
@ -1419,7 +1419,8 @@ space_opt ::= space;
|
|||||||
qname ::= LETTER;
|
qname ::= LETTER;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
sym(1).len += fastScanName(&sym(1).prefix);
|
Value &val = sym(1);
|
||||||
|
val.len += fastScanName(&val);
|
||||||
if (atEnd) {
|
if (atEnd) {
|
||||||
resume($rule_number);
|
resume($rule_number);
|
||||||
return false;
|
return false;
|
||||||
|
@ -498,7 +498,7 @@ public:
|
|||||||
qsizetype fastScanLiteralContent();
|
qsizetype fastScanLiteralContent();
|
||||||
qsizetype fastScanSpace();
|
qsizetype fastScanSpace();
|
||||||
qsizetype fastScanContentCharList();
|
qsizetype fastScanContentCharList();
|
||||||
qsizetype fastScanName(qint16 *prefix = nullptr);
|
qsizetype fastScanName(Value *val = nullptr);
|
||||||
inline qsizetype fastScanNMTOKEN();
|
inline qsizetype fastScanNMTOKEN();
|
||||||
|
|
||||||
|
|
||||||
|
@ -947,7 +947,8 @@ bool QXmlStreamReaderPrivate::parse()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 262: {
|
case 262: {
|
||||||
sym(1).len += fastScanName(&sym(1).prefix);
|
Value &val = sym(1);
|
||||||
|
val.len += fastScanName(&val);
|
||||||
if (atEnd) {
|
if (atEnd) {
|
||||||
resume(262);
|
resume(262);
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user