[SCM] qtdeclarative packaging branch, master, updated. debian/5.6.1-8-4-g4d598d5

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


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

The following commit has been merged in the master branch:
commit 4da32568beabbcb7de305075e8a4a025bb55e3a8
Author: Sandro Knauß <bugs at sandroknauss.de>
Date:   Mon Sep 26 18:26:49 2016 +0200

    Backport upstream change to fix V4 on big-endian
    
    see QTBUG-55730
    
    Closes: #836412
---
 debian/changelog                                 |  5 +++
 debian/patches/fix-V4-on-big-endian.patch        | 44 ++++++++++++++++++++++++
 debian/patches/fix_engine_64bits_big_endian.diff |  4 +--
 debian/patches/series                            |  1 +
 4 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 4d4ad0a..5685c55 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,10 @@
 qtdeclarative-opensource-src (5.6.1-9) UNRELEASED; urgency=medium
 
+  [ Sandro Knauß ]
+  * Backport upstream change to fix V4 on big-endian (closes #836412)
+    (fix-V4-on-big-endian.patch; see QTBUG-55730)
+    (refresh fix_engine_64bits_big_endian.diff)
+
  -- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org>  Sat, 24 Sep 2016 15:53:40 +0200
 
 qtdeclarative-opensource-src (5.6.1-8) unstable; urgency=medium
diff --git a/debian/patches/fix-V4-on-big-endian.patch b/debian/patches/fix-V4-on-big-endian.patch
new file mode 100644
index 0000000..915d479
--- /dev/null
+++ b/debian/patches/fix-V4-on-big-endian.patch
@@ -0,0 +1,44 @@
+From 2a658344397729450f869138bf77e063a0a6166b Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen at theqtcompany.com>
+Date: Mon, 12 Sep 2016 13:15:20 +0200
+Subject: [PATCH] Fix V4 on big-endian
+
+We can't both invert offset position and inter-value positions of tag
+and value.
+
+This patch changes 32-bit big-endian to use the same order inside
+the tag/value but just at different offsets. This also make it
+compatible with how we use it with doubles.
+
+This fixes value/tag reads on 32-bit big-endian and offsets on 64-bit.
+
+Change-Id: I95cf792c29ac3f42a4018ce1f115193c143a0df0
+Reviewed-by: Erik Verbruggen <erik.verbruggen at qt.io>
+Backport-By: Sandro Knauß <bugs at sandroknauss.de>
+Backport-Info: Upstream has developed this patch for 5.7
+---
+ src/qml/jsruntime/qv4value_p.h | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+--- a/src/qml/jsruntime/qv4value_p.h
++++ b/src/qml/jsruntime/qv4value_p.h
+@@ -98,16 +98,13 @@ struct Q_QML_PRIVATE_EXPORT Value
+ #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
+     static inline int valueOffset() { return 0; }
+     static inline int tagOffset() { return 4; }
+-    Q_ALWAYS_INLINE void setTagValue(quint32 tag, quint32 value) { _val = quint64(tag) << 32 | value; }
+-    Q_ALWAYS_INLINE quint32 value() const { return _val & quint64(~quint32(0)); }
+-    Q_ALWAYS_INLINE quint32 tag() const { return _val >> 32; }
+ #else // !Q_LITTLE_ENDIAN
+     static inline int valueOffset() { return 4; }
+     static inline int tagOffset() { return 0; }
+-    Q_ALWAYS_INLINE void setTagValue(quint32 tag, quint32 value) { _val = quint64(value) << 32 | tag; }
+-    Q_ALWAYS_INLINE quint32 tag() const { return _val & quint64(~quint32(0)); }
+-    Q_ALWAYS_INLINE quint32 value() const { return _val >> 32; }
+ #endif
++    Q_ALWAYS_INLINE void setTagValue(quint32 tag, quint32 value) { _val = quint64(tag) << 32 | value; }
++    Q_ALWAYS_INLINE quint32 value() const { return _val & quint64(~quint32(0)); }
++    Q_ALWAYS_INLINE quint32 tag() const { return _val >> 32; }
+ 
+ #if defined(V4_BOOTSTRAP)
+     Q_ALWAYS_INLINE Heap::Base *m() const { Q_UNREACHABLE(); return Q_NULLPTR; }
diff --git a/debian/patches/fix_engine_64bits_big_endian.diff b/debian/patches/fix_engine_64bits_big_endian.diff
index e5342b3..d54d931 100644
--- a/debian/patches/fix_engine_64bits_big_endian.diff
+++ b/debian/patches/fix_engine_64bits_big_endian.diff
@@ -6,7 +6,7 @@ This fixes https://bugreports.qt.io/browse/QTBUG-54717
 
 --- a/src/qml/jsruntime/qv4value_p.h
 +++ b/src/qml/jsruntime/qv4value_p.h
-@@ -92,10 +92,16 @@
+@@ -92,10 +92,16 @@ struct Q_QML_PRIVATE_EXPORT Value
  
      Q_ALWAYS_INLINE quint64 val() const { return _val; }
      Q_ALWAYS_INLINE void setVal(quint64 v) { _val = v; }
@@ -23,4 +23,4 @@ This fixes https://bugreports.qt.io/browse/QTBUG-54717
 +#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN || defined(QV4_USE_64_BIT_VALUE_ENCODING)
      static inline int valueOffset() { return 0; }
      static inline int tagOffset() { return 4; }
-     Q_ALWAYS_INLINE void setTagValue(quint32 tag, quint32 value) { _val = quint64(tag) << 32 | value; }
+ #else // !Q_LITTLE_ENDIAN
diff --git a/debian/patches/series b/debian/patches/series
index 777b790..0f820b4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,6 +1,7 @@
 # Backported patches
 qml_only_release_types_if_they_arent_referenced_anymore.patch
 no_lifetime_dse.diff
+fix-V4-on-big-endian.patch
 
 # Debian patches
 check_system_double-conversion.patch

-- 
qtdeclarative packaging



More information about the pkg-kde-commits mailing list