[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