diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/corelib/serialization/qxmlstream.cpp | 6 | ||||
| -rw-r--r-- | src/corelib/serialization/qxmlstream_p.h | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp index 17f75bb142b..3323ff07073 100644 --- a/src/corelib/serialization/qxmlstream.cpp +++ b/src/corelib/serialization/qxmlstream.cpp @@ -1279,14 +1279,14 @@ inline int QXmlStreamReaderPrivate::fastScanContentCharList() return n; } -inline int QXmlStreamReaderPrivate::fastScanName(int *prefix) +inline int QXmlStreamReaderPrivate::fastScanName(qint16 *prefix) { int n = 0; uint c; while ((c = getChar()) != StreamEOF) { if (n >= 4096) { // This is too long to be a sensible name, and - // can exhaust memory + // can exhaust memory, or the range of decltype(*prefix) return 0; } switch (c) { @@ -1325,7 +1325,7 @@ inline int QXmlStreamReaderPrivate::fastScanName(int *prefix) case ':': if (prefix) { if (*prefix == 0) { - *prefix = n+2; + *prefix = qint16(n + 2); } else { // only one colon allowed according to the namespace spec. putChar(c); return n; diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h index 60558ab189c..48977357968 100644 --- a/src/corelib/serialization/qxmlstream_p.h +++ b/src/corelib/serialization/qxmlstream_p.h @@ -411,7 +411,7 @@ public: struct Value { qsizetype pos; // offset into textBuffer int len; - int prefix; + qint16 prefix; // prefix of a name (as in "prefix:name") limited to 4k in fastScanName() ushort c; }; @@ -507,7 +507,7 @@ public: int fastScanLiteralContent(); int fastScanSpace(); int fastScanContentCharList(); - int fastScanName(int *prefix = nullptr); + int fastScanName(qint16 *prefix = nullptr); inline int fastScanNMTOKEN(); |
