aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/items
diff options
context:
space:
mode:
authorCharles Yin <charles.yin@nokia.com>2011-11-14 14:01:29 +1000
committerQt by Nokia <qt-info@nokia.com>2011-11-14 06:38:57 +0100
commitc430ff551d621a4c7a344224ad1964fb4c7e72f6 (patch)
treeee7ed6e7ce434a33edfb6f2cfe91117021b60505 /src/declarative/items
parent080af75aca6511f4a9408b38cd092283211c9422 (diff)
Fix memory leaks&uninitialized members in QQuickContext2D&QQuickContext2DTexture
1) Delete m_buffer in QQuickContext2D::~QQuickContext2D 2) Add a default ctor for QQuickContext2D::State, although the reset() method is always called, but the valgrind still complains the "uninitialized" error, so add this to make an explicit initialization. 3) m_item in QQuickContext2DTexture is also not initialized. Change-Id: Ie6c74136342d7f0ff8dc268d5d6b976c95ff52f1 Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Diffstat (limited to 'src/declarative/items')
-rw-r--r--src/declarative/items/context2d/qquickcontext2d.cpp1
-rw-r--r--src/declarative/items/context2d/qquickcontext2d_p.h24
-rw-r--r--src/declarative/items/context2d/qquickcontext2dtexture.cpp1
3 files changed, 26 insertions, 0 deletions
diff --git a/src/declarative/items/context2d/qquickcontext2d.cpp b/src/declarative/items/context2d/qquickcontext2d.cpp
index 2297f53769..ef8631f098 100644
--- a/src/declarative/items/context2d/qquickcontext2d.cpp
+++ b/src/declarative/items/context2d/qquickcontext2d.cpp
@@ -3307,6 +3307,7 @@ QQuickContext2D::QQuickContext2D(QQuickCanvasItem* item)
QQuickContext2D::~QQuickContext2D()
{
+ delete m_buffer;
}
v8::Handle<v8::Object> QQuickContext2D::v8value() const
diff --git a/src/declarative/items/context2d/qquickcontext2d_p.h b/src/declarative/items/context2d/qquickcontext2d_p.h
index 3c5e89c335..c5634d2b18 100644
--- a/src/declarative/items/context2d/qquickcontext2d_p.h
+++ b/src/declarative/items/context2d/qquickcontext2d_p.h
@@ -107,6 +107,30 @@ public:
struct State {
+ State()
+ : strokeStyle(QColor("#000000"))
+ , fillStyle(QColor("#000000"))
+ , fillPatternRepeatX(false)
+ , fillPatternRepeatY(false)
+ , strokePatternRepeatX(false)
+ , strokePatternRepeatY(false)
+ , fillRule(Qt::WindingFill)
+ , globalAlpha(1.0)
+ , lineWidth(1)
+ , lineCap(Qt::FlatCap)
+ , lineJoin(Qt::MiterJoin)
+ , miterLimit(10)
+ , shadowOffsetX(0)
+ , shadowOffsetY(0)
+ , shadowBlur(0)
+ , shadowColor(qRgba(0, 0, 0, 0))
+ , globalCompositeOperation(QPainter::CompositionMode_SourceOver)
+ , font(QFont(QLatin1String("sans-serif"), 10))
+ , textAlign(QQuickContext2D::Start)
+ , textBaseline(QQuickContext2D::Alphabetic)
+ {
+ }
+
QTransform matrix;
QPainterPath clipPath;
QBrush strokeStyle;
diff --git a/src/declarative/items/context2d/qquickcontext2dtexture.cpp b/src/declarative/items/context2d/qquickcontext2dtexture.cpp
index 9518f91d45..791d8ad649 100644
--- a/src/declarative/items/context2d/qquickcontext2dtexture.cpp
+++ b/src/declarative/items/context2d/qquickcontext2dtexture.cpp
@@ -72,6 +72,7 @@ Q_GLOBAL_STATIC(QThread, globalCanvasThreadRenderInstance)
QQuickContext2DTexture::QQuickContext2DTexture()
: QSGDynamicTexture()
, m_context(0)
+ , m_item(0)
, m_canvasSize(QSize(1, 1))
, m_tileSize(QSize(1, 1))
, m_canvasWindow(QRect(0, 0, 1, 1))