From e3500ec7fb8c17c33345142a22eeef8e467564cd Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Wed, 4 Nov 2009 18:29:50 +0000 Subject: Fix for link error when building QtSvg Building QtSvg for Symbian (ARMV5 build) fails due to the following linker error: QGraphicsEffectSourcePrivate::invalidateCache(bool) const (referred from qsvgwidget.o). This function is called from the inline destructor of QGraphicsEffectSourcePrivate. Making this destructor non-inline fixes the problem. It is not clear why QtSvg is instantiating this destructor, however, as neither QGraphicsEffectSourcePrivate nor any of its derived classes are referred to from QtSvg source. This problem seems to have been triggered by 85e41590. Reviewed-by: Shane Kearns --- src/gui/effects/qgraphicseffect.cpp | 5 +++++ src/gui/effects/qgraphicseffect_p.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gui/effects/qgraphicseffect.cpp b/src/gui/effects/qgraphicseffect.cpp index 83f4f79..b170254 100644 --- a/src/gui/effects/qgraphicseffect.cpp +++ b/src/gui/effects/qgraphicseffect.cpp @@ -303,6 +303,11 @@ QPixmap QGraphicsEffectSource::pixmap(Qt::CoordinateSystem system, QPoint *offse return pm; } +QGraphicsEffectSourcePrivate::~QGraphicsEffectSourcePrivate() +{ + invalidateCache(); +} + void QGraphicsEffectSourcePrivate::invalidateCache(bool effectRectChanged) const { if (effectRectChanged && m_cachedMode != QGraphicsEffectSource::ExpandToEffectRectPadMode) diff --git a/src/gui/effects/qgraphicseffect_p.h b/src/gui/effects/qgraphicseffect_p.h index 0ff5794..370efdd 100644 --- a/src/gui/effects/qgraphicseffect_p.h +++ b/src/gui/effects/qgraphicseffect_p.h @@ -72,7 +72,7 @@ public: , m_cachedMode(QGraphicsEffectSource::ExpandToTransparentBorderPadMode) {} - virtual ~QGraphicsEffectSourcePrivate() { invalidateCache(); } + virtual ~QGraphicsEffectSourcePrivate(); virtual void detach() = 0; virtual QRectF boundingRect(Qt::CoordinateSystem system) const = 0; virtual QRect deviceRect() const = 0; -- cgit v0.12