From 86ac78bdc0dce95489f3f8af1b4b062f426d399c Mon Sep 17 00:00:00 2001 From: Roman Pasechnik Date: Mon, 17 Apr 2017 07:59:02 +0200 Subject: Fix Canvas memory leak Task-number: QTBUG-59467 Change-Id: I3fa0e20676e453ec194ec71188172f4650313d1e Reviewed-by: Gunnar Sletta Reviewed-by: Robin Burchell --- src/quick/items/context2d/qquickcanvasitem.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/quick/items/context2d') diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp index bda3250c16..9a2e010e79 100644 --- a/src/quick/items/context2d/qquickcanvasitem.cpp +++ b/src/quick/items/context2d/qquickcanvasitem.cpp @@ -640,6 +640,10 @@ void QQuickCanvasItem::releaseResources() QQuickWindowQObjectCleanupJob::schedule(window(), d->textureProvider); d->textureProvider = 0; } + if (d->nodeTexture) { + QQuickWindowQObjectCleanupJob::schedule(window(), d->nodeTexture); + d->nodeTexture = 0; + } } bool QQuickCanvasItem::event(QEvent *event) @@ -662,6 +666,8 @@ void QQuickCanvasItem::invalidateSceneGraph() d->node = 0; // managed by the scene graph, just reset the pointer delete d->textureProvider; d->textureProvider = 0; + delete d->nodeTexture; + d->nodeTexture = 0; } void QQuickCanvasItem::schedulePolish() -- cgit v1.2.3 From 80dc036882e06763b5202a5966422ba79538a2eb Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 25 Apr 2017 18:08:46 -0300 Subject: Run includemocs in qtdeclarative Change-Id: I84e363d735b443cb9beefffd14b8c023a37aa489 Reviewed-by: Lars Knoll --- src/quick/items/context2d/qquickcanvascontext.cpp | 1 + src/quick/items/context2d/qquickcanvasitem.cpp | 2 ++ src/quick/items/context2d/qquickcontext2d.cpp | 2 ++ src/quick/items/context2d/qquickcontext2dtexture.cpp | 2 ++ 4 files changed, 7 insertions(+) (limited to 'src/quick/items/context2d') diff --git a/src/quick/items/context2d/qquickcanvascontext.cpp b/src/quick/items/context2d/qquickcanvascontext.cpp index 300f0489f4..1d61cacb7c 100644 --- a/src/quick/items/context2d/qquickcanvascontext.cpp +++ b/src/quick/items/context2d/qquickcanvascontext.cpp @@ -68,3 +68,4 @@ void QQuickCanvasContext::flush() QT_END_NAMESPACE +#include "moc_qquickcanvascontext_p.cpp" diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp index 9a2e010e79..670dc6d032 100644 --- a/src/quick/items/context2d/qquickcanvasitem.cpp +++ b/src/quick/items/context2d/qquickcanvasitem.cpp @@ -1252,3 +1252,5 @@ QRect QQuickCanvasItem::tiledRect(const QRectF &window, const QSize &tileSize) */ QT_END_NAMESPACE + +#include "moc_qquickcanvasitem_p.cpp" diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp index 0a7db7fa97..5674326d6c 100644 --- a/src/quick/items/context2d/qquickcontext2d.cpp +++ b/src/quick/items/context2d/qquickcontext2d.cpp @@ -4323,3 +4323,5 @@ void QQuickContext2D::setV4Engine(QV4::ExecutionEngine *engine) } QT_END_NAMESPACE + +#include "moc_qquickcontext2d_p.cpp" diff --git a/src/quick/items/context2d/qquickcontext2dtexture.cpp b/src/quick/items/context2d/qquickcontext2dtexture.cpp index d90f527486..df6dd9dba2 100644 --- a/src/quick/items/context2d/qquickcontext2dtexture.cpp +++ b/src/quick/items/context2d/qquickcontext2dtexture.cpp @@ -751,3 +751,5 @@ void QQuickContext2DImageTexture::compositeTile(QQuickContext2DTile* tile) } QT_END_NAMESPACE + +#include "moc_qquickcontext2dtexture_p.cpp" -- cgit v1.2.3