[SCM] qtdeclarative packaging branch, ubuntu+1, updated. debian/5.7.0-2-124-g74ffe53

Timo Jyrinki timo at moszumanska.debian.org
Fri Sep 16 07:48:08 UTC 2016


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

The following commit has been merged in the ubuntu+1 branch:
commit b2bf478485fba4f4e484b1c868b1c39e887efda8
Author: Timo Jyrinki <timo.jyrinki at canonical.com>
Date:   Thu Sep 15 13:54:30 2016 +0000

    debian/patches/Fix-V4-on-big-endian.patch:
    
    * debian/patches/Fix-V4-on-big-endian.patch:
      - Fixes value/tag reads on 32-bit big-endian and offsets on 64-bit.
        (LP: #1606927)
---
 debian/changelog                          |  3 ++
 debian/patches/Fix-V4-on-big-endian.patch | 52 +++++++++++++++++++++++++++++++
 debian/patches/series                     |  1 +
 3 files changed, 56 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index a92dfdb..9c13815 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,9 @@ qtdeclarative-opensource-src (5.6.1-7ubuntu1) UNRELEASED; urgency=medium
   * debian/patches/Fix-visibility-of-properties-in-value-types.patch:
     - Fix compare() in QML (LP: #1610349)
   * Update symbols. 
+  * debian/patches/Fix-V4-on-big-endian.patch:
+    - Fixes value/tag reads on 32-bit big-endian and offsets on 64-bit.
+      (LP: #1606927)
 
  -- Timo Jyrinki <timo-jyrinki at ubuntu.com>  Mon, 22 Aug 2016 13:31:32 +0000
 
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..d696bed
--- /dev/null
+++ b/debian/patches/Fix-V4-on-big-endian.patch
@@ -0,0 +1,52 @@
+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>
+---
+ src/qml/jsruntime/qv4value_p.h | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h
+index b2d6421..5ce1d16 100644
+--- a/src/qml/jsruntime/qv4value_p.h
++++ b/src/qml/jsruntime/qv4value_p.h
+@@ -102,19 +102,16 @@ public:
+     Q_ALWAYS_INLINE quint64 rawValue() const { return _val; }
+     Q_ALWAYS_INLINE void setRawValue(quint64 raw) { _val = raw; }
+ 
+-#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN || defined(QV4_USE_64_BIT_VALUE_ENCODING)
++#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 && !defined(QV4_USE_64_BIT_VALUE_ENCODING)
++#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; }
+-- 
+2.9.3
+
diff --git a/debian/patches/series b/debian/patches/series
index 1ca0092..672fd02 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,6 +7,7 @@ Fix-QQmlEngine-crash-on-big-endian-64-bit-architectu.patch
 Flickable-fix-minXExtent-minYExtent-when-content-is-.patch
 QQuickWindow-Fill-out-timestamps-in-QHoverEvents-sen.patch
 Fix-visibility-of-properties-in-value-types.patch
+Fix-V4-on-big-endian.patch
 
 # Debian patches
 check_system_double-conversion.patch

-- 
qtdeclarative packaging



More information about the pkg-kde-commits mailing list