summaryrefslogtreecommitdiffstats
path: root/src/svg
diff options
context:
space:
mode:
authorRohan McGovern <rohan.mcgovern@nokia.com>2009-04-22 23:06:43 (GMT)
committerRohan McGovern <rohan.mcgovern@nokia.com>2009-04-22 23:17:35 (GMT)
commit7fa8e95d1b87403aab14dd326520600bc028a195 (patch)
treea3bd229bf67ae10b10b821bf3acb92b9da55a422 /src/svg
parente0dcc1dfec22f5625a363d8f207eb5bf061f6837 (diff)
downloadQt-7fa8e95d1b87403aab14dd326520600bc028a195.zip
Qt-7fa8e95d1b87403aab14dd326520600bc028a195.tar.gz
Qt-7fa8e95d1b87403aab14dd326520600bc028a195.tar.bz2
Fixes memory leak in QSvgWidget.
`q' is 0 during construction of QSvgWidgetPrivate, thus each QSvgWidget instance was creating a QSvgRenderer with no parent. Acked-by: Thiago Macieira Reviewed-by: Shane Bradley
Diffstat (limited to 'src/svg')
-rw-r--r--src/svg/qsvgwidget.cpp16
1 files changed, 3 insertions, 13 deletions
diff --git a/src/svg/qsvgwidget.cpp b/src/svg/qsvgwidget.cpp
index a4200ca..ac8595f 100644
--- a/src/svg/qsvgwidget.cpp
+++ b/src/svg/qsvgwidget.cpp
@@ -83,18 +83,6 @@ class QSvgWidgetPrivate : public QWidgetPrivate
{
Q_DECLARE_PUBLIC(QSvgWidget)
public:
- QSvgWidgetPrivate()
- : QWidgetPrivate()
- {
- Q_Q(QSvgWidget);
- renderer = new QSvgRenderer(q);
- }
- QSvgWidgetPrivate(const QString &file)
- : QWidgetPrivate()
- {
- Q_Q(QSvgWidget);
- renderer = new QSvgRenderer(file, q);
- }
QSvgRenderer *renderer;
};
@@ -104,6 +92,7 @@ public:
QSvgWidget::QSvgWidget(QWidget *parent)
: QWidget(*new QSvgWidgetPrivate, parent, 0)
{
+ d_func()->renderer = new QSvgRenderer(this);
QObject::connect(d_func()->renderer, SIGNAL(repaintNeeded()),
this, SLOT(update()));
}
@@ -113,8 +102,9 @@ QSvgWidget::QSvgWidget(QWidget *parent)
of the specified \a file.
*/
QSvgWidget::QSvgWidget(const QString &file, QWidget *parent)
- : QWidget(*new QSvgWidgetPrivate(file), parent, 0)
+ : QWidget(*new QSvgWidgetPrivate, parent, 0)
{
+ d_func()->renderer = new QSvgRenderer(file, this);
QObject::connect(d_func()->renderer, SIGNAL(repaintNeeded()),
this, SLOT(update()));
}