summaryrefslogtreecommitdiffstats
path: root/src/xml
diff options
context:
space:
mode:
Diffstat (limited to 'src/xml')
-rw-r--r--src/xml/dom/qdom.cpp6
-rw-r--r--src/xml/dom/qdomhelpers.cpp18
-rw-r--r--src/xml/dom/qdomhelpers_p.h11
3 files changed, 9 insertions, 26 deletions
diff --git a/src/xml/dom/qdom.cpp b/src/xml/dom/qdom.cpp
index f4c49c5e8c..74ea7d1e4e 100644
--- a/src/xml/dom/qdom.cpp
+++ b/src/xml/dom/qdom.cpp
@@ -5625,10 +5625,8 @@ QDomDocument::ParseResult QDomDocumentPrivate::setContent(QXmlStreamReader *read
QDomParser domParser(this, reader, options);
- if (!domParser.parse()) {
- const auto info = domParser.errorInfo();
- return { std::get<0>(info), std::get<1>(info), std::get<2>(info) };
- }
+ if (!domParser.parse())
+ return domParser.result();
return {};
}
diff --git a/src/xml/dom/qdomhelpers.cpp b/src/xml/dom/qdomhelpers.cpp
index f3826608e4..2a4d4c5b3a 100644
--- a/src/xml/dom/qdomhelpers.cpp
+++ b/src/xml/dom/qdomhelpers.cpp
@@ -24,7 +24,7 @@ using namespace Qt::StringLiterals;
QDomBuilder::QDomBuilder(QDomDocumentPrivate *d, QXmlStreamReader *r,
QDomDocument::ParseOptions options)
- : errorLine(0), errorColumn(0), doc(d), node(d), reader(r), parseOptions(options)
+ : doc(d), node(d), reader(r), parseOptions(options)
{
Q_ASSERT(doc);
Q_ASSERT(reader);
@@ -166,14 +166,9 @@ bool QDomBuilder::skippedEntity(const QString &name)
void QDomBuilder::fatalError(const QString &message)
{
- errorMsg = message;
- errorLine = static_cast<int>(reader->lineNumber());
- errorColumn = static_cast<int>(reader->columnNumber());
-}
-
-QDomBuilder::ErrorInfo QDomBuilder::error() const
-{
- return ErrorInfo(errorMsg, errorLine, errorColumn);
+ parseResult.errorMessage = message;
+ parseResult.errorLine = reader->lineNumber();
+ parseResult.errorColumn = reader->columnNumber();
}
bool QDomBuilder::startEntity(const QString &name)
@@ -241,11 +236,6 @@ bool QDomParser::parse()
return parseProlog() && parseBody();
}
-QDomBuilder::ErrorInfo QDomParser::errorInfo() const
-{
- return domBuilder.error();
-}
-
bool QDomParser::parseProlog()
{
Q_ASSERT(reader);
diff --git a/src/xml/dom/qdomhelpers_p.h b/src/xml/dom/qdomhelpers_p.h
index 270cec9343..73177981b5 100644
--- a/src/xml/dom/qdomhelpers_p.h
+++ b/src/xml/dom/qdomhelpers_p.h
@@ -54,17 +54,12 @@ public:
const QString &notationName);
void fatalError(const QString &message);
-
- using ErrorInfo = std::tuple<QString, int, int>;
- ErrorInfo error() const;
-
- QString errorMsg;
- int errorLine;
- int errorColumn;
+ QDomDocument::ParseResult result() const { return parseResult; }
private:
QString dtdInternalSubset(const QString &dtd);
+ QDomDocument::ParseResult parseResult;
QDomDocumentPrivate *doc;
QDomNodePrivate *node;
QXmlStreamReader *reader;
@@ -85,7 +80,7 @@ public:
QDomParser(QDomDocumentPrivate *d, QXmlStreamReader *r, QDomDocument::ParseOptions options);
bool parse();
- QDomBuilder::ErrorInfo errorInfo() const;
+ QDomDocument::ParseResult result() const { return domBuilder.result(); }
private:
bool parseProlog();