summaryrefslogtreecommitdiff
path: root/src/svg/qsvggraphics.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-11-20 13:18:15 +0100
committerLiang Qi <liang.qi@qt.io>2017-11-20 13:18:15 +0100
commitf84d0cc0165047183466a956589315ad41e946d0 (patch)
tree9dedb5dfde84d4a2732b79e454a48d92158efdbe /src/svg/qsvggraphics.cpp
parent4dd6b2bfebf02223ef498bf52ce354c628cc9607 (diff)
parent984ba6977201f8fbd94d44a2b67519e1faf458cc (diff)
downloadqtsvg-f84d0cc0165047183466a956589315ad41e946d0.tar.gz
Merge remote-tracking branch 'origin/5.10' into dev
Change-Id: I7e158268343c5d92d666d266a87095f1154714dd
Diffstat (limited to 'src/svg/qsvggraphics.cpp')
-rw-r--r--src/svg/qsvggraphics.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/svg/qsvggraphics.cpp b/src/svg/qsvggraphics.cpp
index 387136f..5b273af 100644
--- a/src/svg/qsvggraphics.cpp
+++ b/src/svg/qsvggraphics.cpp
@@ -316,7 +316,6 @@ void QSvgText::draw(QPainter *p, QSvgExtraStates &states)
bool appendSpace = false;
QVector<QString> paragraphs;
- QStack<QTextCharFormat> formats;
QVector<QVector<QTextLayout::FormatRange> > formatRanges(1);
paragraphs.push_back(QString());
@@ -466,6 +465,9 @@ QSvgUse::QSvgUse(const QPointF &start, QSvgNode *parent, QSvgNode *node)
void QSvgUse::draw(QPainter *p, QSvgExtraStates &states)
{
+ if (Q_UNLIKELY(!m_link || isDescendantOf(m_link)))
+ return;
+
applyStyle(p, states);
if (!m_start.isNull()) {
@@ -554,7 +556,7 @@ QSvgNode::Type QSvgVideo::type() const
QRectF QSvgUse::bounds(QPainter *p, QSvgExtraStates &states) const
{
QRectF bounds;
- if (m_link) {
+ if (Q_LIKELY(m_link && !isDescendantOf(m_link))) {
p->translate(m_start);
bounds = m_link->transformedBounds(p, states);
p->translate(-m_start);