[SCM] qtquickcontrols packaging branch, master, updated. debian/5.6.1-2-3-gffe3e87

Lisandro Damián Nicanor Pérez lisandro at moszumanska.debian.org
Tue Sep 20 13:13:30 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtquickcontrols.git;a=commitdiff;h=bfbc726

The following commit has been merged in the master branch:
commit bfbc726064da2a6f2f0fb02cb61d2d0fd389c988
Author: Lisandro Damián Nicanor Pérez Meyer <perezmeyer at gmail.com>
Date:   Tue Sep 20 09:42:39 2016 -0300

    Backport a patch to solve a crash.
---
 debian/changelog                       |   4 +
 debian/patches/fix_crash_on_exit.patch | 182 +++++++++++++++++++++++++++++++++
 debian/patches/series                  |   1 +
 3 files changed, 187 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index db3d2e5..0be2436 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,9 @@
 qtquickcontrols-opensource-src (5.6.1-3) UNRELEASED; urgency=medium
 
+  [ Lisandro Damián Nicanor Pérez Meyer ]
+  * Backport fix_crash_on_exit.patch to solve a crash that affects among
+    others, kscreenlocker.
+
  -- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org>  Tue, 20 Sep 2016 09:40:11 -0300
 
 qtquickcontrols-opensource-src (5.6.1-2) unstable; urgency=medium
diff --git a/debian/patches/fix_crash_on_exit.patch b/debian/patches/fix_crash_on_exit.patch
new file mode 100644
index 0000000..af85735
--- /dev/null
+++ b/debian/patches/fix_crash_on_exit.patch
@@ -0,0 +1,182 @@
+From 59c6c0e0b1b5b46747595a58e11311b7393d7e70 Mon Sep 17 00:00:00 2001
+From: Mitch Curtis <mitch.curtis at qt.io>
+Date: Tue, 13 Sep 2016 10:23:22 +0200
+Subject: [PATCH] Fix crash on exit when using default property aliases with
+ layouts
+
+The layout was being destroyed before the text, which meant that the
+removeItemChangeListener() call never got hit. To ensure that the
+listener is always removed, loop through each child in QQuickLayout's
+destructor.
+
+Task-number: QTBUG-51927
+Change-Id: I4235579501bd1790e9483a8741915e55f1b1b803
+Reviewed-by: Frederik Gladhorn <frederik.gladhorn at qt.io>
+Reviewed-by: J-P Nurmi <jpnurmi at qt.io>
+---
+ src/layouts/qquicklayout.cpp                      |  3 ++
+ tests/auto/controls/data/layout/Container.qml     | 55 +++++++++++++++++++++++
+ tests/auto/controls/data/layout/ContainerUser.qml | 53 ++++++++++++++++++++++
+ tests/auto/controls/data/tst_layout.qml           | 11 +++++
+ 4 files changed, 122 insertions(+)
+ create mode 100644 tests/auto/controls/data/layout/Container.qml
+ create mode 100644 tests/auto/controls/data/layout/ContainerUser.qml
+
+diff --git a/src/layouts/qquicklayout.cpp b/src/layouts/qquicklayout.cpp
+index f28a7d0..a7e6319 100644
+--- a/src/layouts/qquicklayout.cpp
++++ b/src/layouts/qquicklayout.cpp
+@@ -695,6 +695,9 @@ QQuickLayout::QQuickLayout(QQuickLayoutPrivate &dd, QQuickItem *parent)
+ QQuickLayout::~QQuickLayout()
+ {
+     d_func()->m_isReady = false;
++
++    foreach (QQuickItem *child, d_func()->childItems)
++        QQuickItemPrivate::get(child)->removeItemChangeListener(this, QQuickItemPrivate::SiblingOrder);
+ }
+ 
+ QQuickLayoutAttached *QQuickLayout::qmlAttachedProperties(QObject *object)
+diff --git a/tests/auto/controls/data/layout/Container.qml b/tests/auto/controls/data/layout/Container.qml
+new file mode 100644
+index 0000000..db3d68c
+--- /dev/null
++++ b/tests/auto/controls/data/layout/Container.qml
+@@ -0,0 +1,55 @@
++/****************************************************************************
++**
++** Copyright (C) 2016 The Qt Company Ltd.
++** Contact: http://www.qt.io/licensing/
++**
++** This file is part of the test suite of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:BSD$
++** You may use this file under the terms of the BSD license as follows:
++**
++** "Redistribution and use in source and binary forms, with or without
++** modification, are permitted provided that the following conditions are
++** met:
++**   * Redistributions of source code must retain the above copyright
++**     notice, this list of conditions and the following disclaimer.
++**   * Redistributions in binary form must reproduce the above copyright
++**     notice, this list of conditions and the following disclaimer in
++**     the documentation and/or other materials provided with the
++**     distribution.
++**   * Neither the name of The Qt Company Ltd nor the names of its
++**     contributors may be used to endorse or promote products derived
++**     from this software without specific prior written permission.
++**
++**
++** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++import QtQuick 2.5
++import QtQuick.Layouts 1.2
++
++Item {
++    objectName: "qtbug51927-window"
++    visible: true
++
++    default property alias _contents: customContent.data
++
++    ColumnLayout {
++        id: customContent
++        objectName: "qtbug51927-columnLayout"
++        anchors.fill: parent
++    }
++}
+diff --git a/tests/auto/controls/data/layout/ContainerUser.qml b/tests/auto/controls/data/layout/ContainerUser.qml
+new file mode 100644
+index 0000000..ff7ce62
+--- /dev/null
++++ b/tests/auto/controls/data/layout/ContainerUser.qml
+@@ -0,0 +1,53 @@
++/****************************************************************************
++**
++** Copyright (C) 2016 The Qt Company Ltd.
++** Contact: http://www.qt.io/licensing/
++**
++** This file is part of the test suite of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:BSD$
++** You may use this file under the terms of the BSD license as follows:
++**
++** "Redistribution and use in source and binary forms, with or without
++** modification, are permitted provided that the following conditions are
++** met:
++**   * Redistributions of source code must retain the above copyright
++**     notice, this list of conditions and the following disclaimer.
++**   * Redistributions in binary form must reproduce the above copyright
++**     notice, this list of conditions and the following disclaimer in
++**     the documentation and/or other materials provided with the
++**     distribution.
++**   * Neither the name of The Qt Company Ltd nor the names of its
++**     contributors may be used to endorse or promote products derived
++**     from this software without specific prior written permission.
++**
++**
++** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++import QtQuick 2.6
++import QtQuick.Window 2.2
++
++Container {
++    visible: true
++
++    Text {
++        objectName: "qtbug51927-text"
++        text: qsTr("Hello World")
++        anchors.centerIn: parent
++        renderType: Text.QtRendering
++    }
++}
+diff --git a/tests/auto/controls/data/tst_layout.qml b/tests/auto/controls/data/tst_layout.qml
+index fc62b8a..da0b1dd 100644
+--- a/tests/auto/controls/data/tst_layout.qml
++++ b/tests/auto/controls/data/tst_layout.qml
+@@ -53,5 +53,16 @@ TestCase {
+         var object = Qt.createQmlObject('import QtQuick 2.2; import QtQuick.Layouts 1.0; QtObject { Layout.fillWidth: true }', testCase, '');
+         object.destroy()
+     }
++
++    function test_defaultPropertyAliasCrash() {
++        var containerUserComponent = Qt.createComponent("layout/ContainerUser.qml");
++        compare(containerUserComponent.status, Component.Ready);
++
++        var containerUser = containerUserComponent.createObject(testCase);
++        verify(containerUser);
++
++        // Shouldn't crash.
++        containerUser.destroy();
++    }
+ }
+ 
+-- 
+2.1.4
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..a448692
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+fix_crash_on_exit.patch

-- 
qtquickcontrols packaging



More information about the pkg-kde-commits mailing list