From 983537cbc2bcdce61fd21e557b3a64c5cda5eb3f Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Tue, 3 Apr 2018 11:17:39 -0500 Subject: [PATCH] pull in candidate memleak fix (review#224684) --- qt5-qtdeclarative.spec | 11 ++++++++++- qtdeclarative-leak.patch | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 qtdeclarative-leak.patch diff --git a/qt5-qtdeclarative.spec b/qt5-qtdeclarative.spec index 7ca60eb..e26defc 100644 --- a/qt5-qtdeclarative.spec +++ b/qt5-qtdeclarative.spec @@ -14,7 +14,7 @@ Summary: Qt5 - QtDeclarative component Name: qt5-%{qt_module} Version: 5.10.1 -Release: 4%{?dist} +Release: 5%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -35,6 +35,9 @@ Patch1: qtdeclarative-opensource-src-5.9.0-no_sse2.patch Patch2: qtdeclarative-QQuickShaderEffectSource_deadlock.patch ## upstream patches +# https://codereview.qt-project.org/#/c/224684/ +Patch100: qtdeclarative-leak.patch + # regression https://bugreports.qt.io/browse/QTBUG-64017 # so revert this offending commit (for now) Patch111: 0111-Fix-qml-cache-invalidation-when-changing-dependent-C.patch @@ -102,8 +105,11 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %endif %patch2 -p1 -b .QQuickShaderEffectSource_deadlock +%patch100 -p1 -b .memleak + %patch111 -p1 -R -b .0111 + %patch201 -p0 -b .kdebug346118 %patch202 -p1 -b .no_sse2_non_fatal @@ -232,6 +238,9 @@ make check -k -C tests ||: %changelog +* Tue Apr 03 2018 Rex Dieter - 5.10.1-5 +- pull in candidate memleak fix (review#224684) + * Sun Mar 18 2018 Iryna Shcherbina - 5.10.1-4 - Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) diff --git a/qtdeclarative-leak.patch b/qtdeclarative-leak.patch new file mode 100644 index 0000000..141aba3 --- /dev/null +++ b/qtdeclarative-leak.patch @@ -0,0 +1,22 @@ +diff -up qtdeclarative-everywhere-src-5.10.1/src/quick/scenegraph/qsgrenderloop.cpp.leak qtdeclarative-everywhere-src-5.10.1/src/quick/scenegraph/qsgrenderloop.cpp +--- qtdeclarative-everywhere-src-5.10.1/src/quick/scenegraph/qsgrenderloop.cpp.leak 2018-04-03 11:14:09.975064043 -0500 ++++ qtdeclarative-everywhere-src-5.10.1/src/quick/scenegraph/qsgrenderloop.cpp 2018-04-03 11:15:29.347573091 -0500 +@@ -305,6 +305,8 @@ void QSGGuiThreadRenderLoop::hide(QQuick + { + QQuickWindowPrivate *cd = QQuickWindowPrivate::get(window); + cd->fireAboutToStop(); ++ if (m_windows.contains(window)) ++ m_windows[window].updatePending = false; + } + + void QSGGuiThreadRenderLoop::windowDestroyed(QQuickWindow *window) +@@ -494,7 +496,8 @@ QImage QSGGuiThreadRenderLoop::grab(QQui + + void QSGGuiThreadRenderLoop::maybeUpdate(QQuickWindow *window) + { +- if (!m_windows.contains(window)) ++ QQuickWindowPrivate *cd = QQuickWindowPrivate::get(window); ++ if (!cd->isRenderable() || !m_windows.contains(window)) + return; + + m_windows[window].updatePending = true;