aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDonald Carr2017-07-29 10:42:37 -0700
committerDonald Carr2017-07-29 10:43:30 -0700
commit6114a1bd94165ebc76c6f7a5f1677fc200f516ae (patch)
treee6ba9dd9541985f9b4201342c2e384bec3d7aefc
parent2df5e087b7cff568b8fb7d32618d79f78fcac37d (diff)
downloadaur-6114a1bd94165ebc76c6f7a5f1677fc200f516ae.tar.gz
Integrate patch fixing memory leak in the scene graph
-rw-r--r--0001-Fix-memory-leak-in-QSGAtlasTexture-Manager-create.patch56
-rw-r--r--PKGBUILD3
2 files changed, 58 insertions, 1 deletions
diff --git a/0001-Fix-memory-leak-in-QSGAtlasTexture-Manager-create.patch b/0001-Fix-memory-leak-in-QSGAtlasTexture-Manager-create.patch
new file mode 100644
index 000000000000..5e67277cf9f5
--- /dev/null
+++ b/0001-Fix-memory-leak-in-QSGAtlasTexture-Manager-create.patch
@@ -0,0 +1,56 @@
+From 39061af50cc3092289cdd71d17802139590ecb59 Mon Sep 17 00:00:00 2001
+From: Mitch Curtis <mitch.curtis@qt.io>
+Date: Mon, 24 Jul 2017 15:00:37 +0200
+Subject: [PATCH] Fix memory leak in QSGAtlasTexture::Manager::create()
+
+Parent the Atlas to the manager.
+
+Task-number: QTBUG-61754
+Change-Id: Ida8b0622d1dbcaafa622f72a1d210969fa61d5bf
+Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
+---
+ src/quick/scenegraph/util/qsgatlastexture.cpp | 7 ++++---
+ src/quick/scenegraph/util/qsgatlastexture_p.h | 2 +-
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/quick/scenegraph/util/qsgatlastexture.cpp b/src/quick/scenegraph/util/qsgatlastexture.cpp
+index 22f0b13f4..d5f836a52 100644
+--- a/src/quick/scenegraph/util/qsgatlastexture.cpp
++++ b/src/quick/scenegraph/util/qsgatlastexture.cpp
+@@ -116,7 +116,7 @@ QSGTexture *Manager::create(const QImage &image, bool hasAlphaChannel)
+ Texture *t = 0;
+ if (image.width() < m_atlas_size_limit && image.height() < m_atlas_size_limit) {
+ if (!m_atlas)
+- m_atlas = new Atlas(m_atlas_size);
++ m_atlas = new Atlas(m_atlas_size, this);
+ // t may be null for atlas allocation failure
+ t = m_atlas->create(image);
+ if (t && !hasAlphaChannel && t->hasAlphaChannel())
+@@ -125,8 +125,9 @@ QSGTexture *Manager::create(const QImage &image, bool hasAlphaChannel)
+ return t;
+ }
+
+-Atlas::Atlas(const QSize &size)
+- : m_allocator(size)
++Atlas::Atlas(const QSize &size, QObject *parent)
++ : QObject(parent)
++ , m_allocator(size)
+ , m_texture_id(0)
+ , m_size(size)
+ , m_atlas_transient_image_threshold(0)
+diff --git a/src/quick/scenegraph/util/qsgatlastexture_p.h b/src/quick/scenegraph/util/qsgatlastexture_p.h
+index 3dee53954..0bb07e8e8 100644
+--- a/src/quick/scenegraph/util/qsgatlastexture_p.h
++++ b/src/quick/scenegraph/util/qsgatlastexture_p.h
+@@ -88,7 +88,7 @@ private:
+ class Atlas : public QObject
+ {
+ public:
+- Atlas(const QSize &size);
++ Atlas(const QSize &size, QObject *parent);
+ ~Atlas();
+
+ void invalidate();
+--
+2.13.3
+
diff --git a/PKGBUILD b/PKGBUILD
index 4aa501a94f55..fc967923cc14 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -76,7 +76,7 @@ _pkgvermajmin="5.9"
_pkgverpatch=".1"
# {alpha/beta/beta2/rc}
_dev_suffix=""
-pkgrel=1
+pkgrel=2
pkgver="${_pkgvermajmin}${_pkgverpatch}"
$_build_from_head && pkgver=6.6.6
_pkgver=${pkgver}
@@ -294,6 +294,7 @@ if $_patching; then
#patch -p1 < ${startdir}/0001-Check-lib64-as-well-as-lib.patch
cd ${_declarativedir}
+ patch -p1 < ${startdir}/0001-Fix-memory-leak-in-QSGAtlasTexture-Manager-create.patch
#patch -p1 < ${startdir}/0001-Fix-crash-in-QQuickPixmapReader-friends.patch
#patch -p1 < ${startdir}/0001-Fix-build-with-qreal-as-float.patch