summaryrefslogtreecommitdiffstats
path: root/src/xml
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@nokia.com>2009-07-28 18:16:36 +0200
committerVolker Hilsheimer <volker.hilsheimer@nokia.com>2009-07-28 18:16:36 +0200
commit5c11a736367a854c3c201c31265f96e8153f20f5 (patch)
treead8b742c3738886e8083d27130b538a7048d6520 /src/xml
parentb5bcc529f67458c98571d3b726c9d173512aac27 (diff)
Implement a copy constructor for QXmlParseException to avoid crashes when
throwing them. Autotest included. Task: 258081 Reviewed-by: Trustme
Diffstat (limited to 'src/xml')
-rw-r--r--src/xml/sax/qxml.cpp18
-rw-r--r--src/xml/sax/qxml.h1
2 files changed, 19 insertions, 0 deletions
diff --git a/src/xml/sax/qxml.cpp b/src/xml/sax/qxml.cpp
index fe1e74056a..3b1726b7d8 100644
--- a/src/xml/sax/qxml.cpp
+++ b/src/xml/sax/qxml.cpp
@@ -244,6 +244,16 @@ public:
class QXmlParseExceptionPrivate
{
public:
+ QXmlParseExceptionPrivate()
+ : column(-1), line(-1)
+ {
+ }
+ QXmlParseExceptionPrivate(const QXmlParseExceptionPrivate &other)
+ : msg(other.msg), column(other.column), line(other.line),
+ pub(other.pub), sys(other.sys)
+ {
+ }
+
QString msg;
int column;
int line;
@@ -553,6 +563,14 @@ QXmlParseException::QXmlParseException(const QString& name, int c, int l,
}
/*!
+ Creates a copy of \a other.
+*/
+QXmlParseException::QXmlParseException(const QXmlParseException& other)
+{
+ d = new QXmlParseExceptionPrivate(*other.d);
+}
+
+/*!
Destroys the QXmlParseException.
*/
QXmlParseException::~QXmlParseException()
diff --git a/src/xml/sax/qxml.h b/src/xml/sax/qxml.h
index 8aa7e63d1d..6ccd44ea4d 100644
--- a/src/xml/sax/qxml.h
+++ b/src/xml/sax/qxml.h
@@ -193,6 +193,7 @@ class Q_XML_EXPORT QXmlParseException
public:
explicit QXmlParseException(const QString &name = QString(), int c = -1, int l = -1,
const QString &p = QString(), const QString &s = QString());
+ QXmlParseException(const QXmlParseException &other);
~QXmlParseException();
int columnNumber() const;