diff options
author | Donald Carr | 2017-07-29 10:42:37 -0700 |
---|---|---|
committer | Donald Carr | 2017-07-29 10:43:30 -0700 |
commit | 6114a1bd94165ebc76c6f7a5f1677fc200f516ae (patch) | |
tree | e6ba9dd9541985f9b4201342c2e384bec3d7aefc | |
parent | 2df5e087b7cff568b8fb7d32618d79f78fcac37d (diff) | |
download | aur-6114a1bd94165ebc76c6f7a5f1677fc200f516ae.tar.gz |
Integrate patch fixing memory leak in the scene graph
-rw-r--r-- | 0001-Fix-memory-leak-in-QSGAtlasTexture-Manager-create.patch | 56 | ||||
-rw-r--r-- | PKGBUILD | 3 |
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 + @@ -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 |