[SCM] qtdeclarative packaging branch, master, updated. debian/5.4.2-3-3-gedb876f

Lisandro Damián Nicanor Pérez lisandro at moszumanska.debian.org
Fri Jul 24 17:08:27 UTC 2015


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

The following commit has been merged in the master branch:
commit b4d37d17b52379a79c90432a75b097a40fb6a5ea
Author: Lisandro Damián Nicanor Pérez Meyer <perezmeyer at gmail.com>
Date:   Fri Jul 24 14:04:32 2015 -0300

    Backport avoid_calling_potentially_pure-virtual_method.patch
---
 debian/changelog                                   |  4 ++
 ...d_calling_potentially_pure-virtual_method.patch | 64 ++++++++++++++++++++++
 debian/patches/series                              |  4 ++
 3 files changed, 72 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 40c5e3e..7519d82 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,9 @@
 qtdeclarative-opensource-src (5.4.2-4) UNRELEASED; urgency=medium
 
+  [ Lisandro Damián Nicanor Pérez Meyer ]
+  * Backport avoid_calling_potentially_pure-virtual_method.patch to avoid
+    crashes. Thanks Diane for the hint!
+
  -- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org>  Fri, 24 Jul 2015 14:02:47 -0300
 
 qtdeclarative-opensource-src (5.4.2-3) unstable; urgency=medium
diff --git a/debian/patches/avoid_calling_potentially_pure-virtual_method.patch b/debian/patches/avoid_calling_potentially_pure-virtual_method.patch
new file mode 100644
index 0000000..a2c9405
--- /dev/null
+++ b/debian/patches/avoid_calling_potentially_pure-virtual_method.patch
@@ -0,0 +1,64 @@
+From 0d31aa1617c96ed3e3624d77332ea6f13aba1492 Mon Sep 17 00:00:00 2001
+From: David Edmundson <davidedmundson at kde.org>
+Date: Thu, 23 Apr 2015 15:01:24 +0200
+Subject: [PATCH] Avoid calling potentially pure virtual method
+
+In Qt 5.4 screenChanged is called indirectly from the destructor of
+QPlatformScreen. By comparing new values against the oldScreen we call
+call virtual methods of QPlatformScreen from it's own destructor which
+results in a crash.
+
+This patch simply emits change signals whenever a screen change regardless
+of whether the value differs from the previous screen. Arguably less
+efficient, but better than crashing.
+
+This fix is not needed in Qt 5.5 where the QPA architecture has changed.
+
+Task-number: QTBUG-45753
+Change-Id: Ic155906928855a377add9b21bff9e72b31f4667e
+Reviewed-by: Alan Alpert <aalpert at blackberry.com>
+---
+ src/quick/items/qquickscreen.cpp | 27 +++++++++------------------
+ 1 file changed, 9 insertions(+), 18 deletions(-)
+
+diff --git a/src/quick/items/qquickscreen.cpp b/src/quick/items/qquickscreen.cpp
+index c4d1407..0900adb 100644
+--- a/src/quick/items/qquickscreen.cpp
++++ b/src/quick/items/qquickscreen.cpp
+@@ -347,24 +347,15 @@ void QQuickScreenAttached::screenChanged(QScreen *screen)
+             emit orientationUpdateMaskChanged();
+         }
+ 
+-        if (!oldScreen || screen->size() != oldScreen->size()) {
+-            emit widthChanged();
+-            emit heightChanged();
+-        }
+-        if (!oldScreen || screen->name() != oldScreen->name())
+-            emit nameChanged();
+-        if (!oldScreen || screen->orientation() != oldScreen->orientation())
+-            emit orientationChanged();
+-        if (!oldScreen || screen->primaryOrientation() != oldScreen->primaryOrientation())
+-            emit primaryOrientationChanged();
+-        if (!oldScreen || screen->availableVirtualGeometry() != oldScreen->availableVirtualGeometry())
+-            emit desktopGeometryChanged();
+-        if (!oldScreen || screen->logicalDotsPerInch() != oldScreen->logicalDotsPerInch())
+-            emit logicalPixelDensityChanged();
+-        if (!oldScreen || screen->physicalDotsPerInch() != oldScreen->physicalDotsPerInch())
+-            emit pixelDensityChanged();
+-        if (!oldScreen || screen->devicePixelRatio() != oldScreen->devicePixelRatio())
+-            emit devicePixelRatioChanged();
++        emit widthChanged();
++        emit heightChanged();
++        emit nameChanged();
++        emit orientationChanged();
++        emit primaryOrientationChanged();
++        emit desktopGeometryChanged();
++        emit logicalPixelDensityChanged();
++        emit pixelDensityChanged();
++        emit devicePixelRatioChanged();
+ 
+         connect(screen, SIGNAL(geometryChanged(QRect)),
+                 this, SIGNAL(widthChanged()));
+-- 
+2.1.4
+
diff --git a/debian/patches/series b/debian/patches/series
index f53cb32..d12b4f6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,5 @@
+# Upstream patches
+avoid_calling_potentially_pure-virtual_method.patch
+
+# Debian patches
 check_system_double-conversion.patch

-- 
qtdeclarative packaging



More information about the pkg-kde-commits mailing list