diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-03-02 03:00:38 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-03-02 03:00:39 +0100 |
commit | 65011e9f1b23ab62fff8d9327eeafedd29c91332 (patch) | |
tree | a1eac44dd8109f678a140763b2a0288ac2517068 /src/svg/qsvghandler.cpp | |
parent | 0c023adada49bab1098e7df274ad7889828ef439 (diff) | |
parent | f354d4be9a7a436fb16bd9764a261c930101850c (diff) | |
download | qtsvg-65011e9f1b23ab62fff8d9327eeafedd29c91332.tar.gz |
Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I1c146c122f307cd6e985061b412ef2b50690561e
Diffstat (limited to 'src/svg/qsvghandler.cpp')
-rw-r--r-- | src/svg/qsvghandler.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp index dd31965..463ec01 100644 --- a/src/svg/qsvghandler.cpp +++ b/src/svg/qsvghandler.cpp @@ -1596,7 +1596,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path) const QChar *end = str + dataStr.size(); while (str != end) { - while (str->isSpace()) + while (str->isSpace() && (str + 1) != end) ++str; QChar pathElem = *str; ++str; @@ -3709,14 +3709,20 @@ bool QSvgHandler::startElement(const QString &localName, } break; default: + const QByteArray msg = QByteArrayLiteral("Could not add child element to parent element because the types are incorrect."); + qCWarning(lcSvgHandler, "%s", prefixMessage(msg, xml).constData()); + delete node; + node = 0; break; } } - parseCoreNode(node, attributes); + if (node) { + parseCoreNode(node, attributes); #ifndef QT_NO_CSSPARSER - cssStyleLookup(node, this, m_selector); + cssStyleLookup(node, this, m_selector); #endif - parseStyle(node, attributes, this); + parseStyle(node, attributes, this); + } } else if (FactoryMethod method = findGraphicsFactory(localName)) { //rendering element Q_ASSERT(!m_nodes.isEmpty()); |