[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