[SCM] qtdeclarative packaging branch, ubuntu, updated. debian/5.6.1-11-111-gabc88c7
Timo Jyrinki
timo at moszumanska.debian.org
Mon Nov 7 12:24:12 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtdeclarative.git;a=commitdiff;h=abc88c7
The following commit has been merged in the ubuntu branch:
commit abc88c713bbb8ec3425d0442de822a2052770d3e
Author: Timo Jyrinki <timo.jyrinki at canonical.com>
Date: Mon Nov 7 12:23:57 2016 +0000
New usptream version 5.6.2. Drop patches merged upstream.
* New usptream version 5.6.2.
* Drop patches merged upstream:
- qml_only_release_types_if_they_arent_referenced_anymore.patch
- no_lifetime_dse.diff
- V4-Always-set-the-tag-when-boxing-a-pointer-in-QV4-V.patch
- 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
- Revert-Remove-this-piece-of-code.patch
---
debian/changelog | 11 +-
...ine-crash-on-big-endian-64-bit-architectu.patch | 39 ---
...ix-minXExtent-minYExtent-when-content-is-.patch | 120 -------
...w-Fill-out-timestamps-in-QHoverEvents-sen.patch | 261 --------------
.../patches/Revert-Remove-this-piece-of-code.patch | 99 ------
...et-the-tag-when-boxing-a-pointer-in-QV4-V.patch | 374 ---------------------
debian/patches/fix_test_remove_qlibraryinfo.patch | 4 +-
debian/patches/no_lifetime_dse.diff | 15 -
...se_types_if_they_arent_referenced_anymore.patch | 63 ----
debian/patches/series | 7 -
10 files changed, 12 insertions(+), 981 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 8e8a802..3dd1cb1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,18 @@
-qtdeclarative-opensource-src (5.6.1-11ubuntu1) UNRELEASED; urgency=medium
+qtdeclarative-opensource-src (5.6.2-0ubuntu1) UNRELEASED; urgency=medium
* Update symbols.
* Merge with Debian 5.6.1-11 changes.
* Use fix-V4-on-big-endian.patch version from upstream 5.6 branch.
* Skip certain failing tests on i386 and ppc64el tests on xenial.
+ * New usptream version 5.6.2.
+ * Drop patches merged upstream:
+ - qml_only_release_types_if_they_arent_referenced_anymore.patch
+ - no_lifetime_dse.diff
+ - V4-Always-set-the-tag-when-boxing-a-pointer-in-QV4-V.patch
+ - 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
+ - Revert-Remove-this-piece-of-code.patch
-- Timo Jyrinki <timo-jyrinki at ubuntu.com> Thu, 06 Oct 2016 14:39:07 +0000
diff --git a/debian/patches/Fix-QQmlEngine-crash-on-big-endian-64-bit-architectu.patch b/debian/patches/Fix-QQmlEngine-crash-on-big-endian-64-bit-architectu.patch
deleted file mode 100644
index 8bf3809..0000000
--- a/debian/patches/Fix-QQmlEngine-crash-on-big-endian-64-bit-architectu.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 1a55e5907f46166f1e96712d8a19dbf313de4a97 Mon Sep 17 00:00:00 2001
-From: Maximiliano Curia <maxy at debian.org>
-Date: Tue, 19 Jul 2016 15:49:48 +0200
-Subject: [PATCH] Fix QQmlEngine crash on big endian 64 bit architectures
- (s390x)
-
-This change disables the BIG_ENDIAN 32 bits words mangling in 64 bits
-machines (where the words are 64 bits long); this would otherwise result
-in a segfault.
-
-Task-number: QTBUG-54717
-Change-Id: I6b5ab6f213880b030795185c05e609d290168901
----
- src/qml/jsruntime/qv4value_p.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h
-index 7c2bb31..5abf5ad 100644
---- a/src/qml/jsruntime/qv4value_p.h
-+++ b/src/qml/jsruntime/qv4value_p.h
-@@ -96,13 +96,13 @@ 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
-+#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; }
- Q_ALWAYS_INLINE quint32 value() const { return _val & quint64(~quint32(0)); }
- Q_ALWAYS_INLINE quint32 tag() const { return _val >> 32; }
--#else // !Q_LITTLE_ENDIAN
-+#else // !Q_LITTLE_ENDIAN && !defined(QV4_USE_64_BIT_VALUE_ENCODING)
- 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; }
---
-2.8.1
-
diff --git a/debian/patches/Flickable-fix-minXExtent-minYExtent-when-content-is-.patch b/debian/patches/Flickable-fix-minXExtent-minYExtent-when-content-is-.patch
deleted file mode 100644
index b8708ac..0000000
--- a/debian/patches/Flickable-fix-minXExtent-minYExtent-when-content-is-.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 67779215fc919075709d2072e412551b3e126a3d Mon Sep 17 00:00:00 2001
-From: Andrea Bernabei <and.bernabei at gmail.com>
-Date: Tue, 31 May 2016 14:21:44 +0100
-Subject: [PATCH] Flickable: fix minXExtent/minYExtent when content is smaller
- than view
-
-At the moment, defining leftMargin (or topMargin) and contentWidth
-(or contentHeight) so that "leftMargin+contentWidth < flickable.width"
-(or topMargin+contentHeight < flickable.height) leads to widthRatio
-(or heightRatio) having value != 1.
-The value should, however, be 1, as the content is completely visible
-inside the view, margins included.
-
-As a sideeffect, under the assumptions described above, it will now
-not be possible to scroll the leftMargin (or topMargin) out of screen,
-something which was possible (and it shouldn't have) before this fix.
-
-Task-number: QTBUG-53726
-Change-Id: I22426c8038e90a2cfc7445914206eae0e781a3fb
----
- src/quick/items/qquickflickable.cpp | 4 ++--
- .../qquickflickable/data/ratios_smallContent.qml | 19 +++++++++++++++
- .../quick/qquickflickable/tst_qquickflickable.cpp | 28 ++++++++++++++++++++++
- 3 files changed, 49 insertions(+), 2 deletions(-)
- create mode 100644 tests/auto/quick/qquickflickable/data/ratios_smallContent.qml
-
-diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp
-index 32d445d..b0980cd 100644
---- a/src/quick/items/qquickflickable.cpp
-+++ b/src/quick/items/qquickflickable.cpp
-@@ -1580,13 +1580,13 @@ qreal QQuickFlickable::minXExtent() const
- qreal QQuickFlickable::maxXExtent() const
- {
- Q_D(const QQuickFlickable);
-- return qMin<qreal>(0, width() - vWidth() - d->hData.endMargin);
-+ return qMin<qreal>(minXExtent(), width() - vWidth() - d->hData.endMargin);
- }
- /* returns -ve */
- qreal QQuickFlickable::maxYExtent() const
- {
- Q_D(const QQuickFlickable);
-- return qMin<qreal>(0, height() - vHeight() - d->vData.endMargin);
-+ return qMin<qreal>(minYExtent(), height() - vHeight() - d->vData.endMargin);
- }
-
- void QQuickFlickable::componentComplete()
-diff --git a/tests/auto/quick/qquickflickable/data/ratios_smallContent.qml b/tests/auto/quick/qquickflickable/data/ratios_smallContent.qml
-new file mode 100644
-index 0000000..07bad68
---- /dev/null
-+++ b/tests/auto/quick/qquickflickable/data/ratios_smallContent.qml
-@@ -0,0 +1,19 @@
-+import QtQuick 2.0
-+
-+Flickable {
-+ property double heightRatioIs: visibleArea.heightRatio
-+ property double widthRatioIs: visibleArea.widthRatio
-+
-+ width: 200
-+ height: 200
-+ contentWidth: item.width
-+ contentHeight: item.height
-+ topMargin: 20
-+ leftMargin: 40
-+
-+ Item {
-+ id: item
-+ width: 100
-+ height: 100
-+ }
-+}
-diff --git a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
-index dc71717..2e134ff 100644
---- a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
-+++ b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
-@@ -95,6 +95,7 @@ private slots:
- void movementFromProgrammaticFlick();
- void cleanup();
- void contentSize();
-+ void ratios_smallContent();
-
- private:
- void flickWithTouch(QQuickWindow *window, QTouchDevice *touchDevice, const QPoint &from, const QPoint &to);
-@@ -1817,6 +1818,33 @@ void tst_qquickflickable::contentSize()
- QCOMPARE(chspy.count(), 1);
- }
-
-+// QTBUG-53726
-+void tst_qquickflickable::ratios_smallContent()
-+{
-+ QScopedPointer<QQuickView> window(new QQuickView);
-+ window->setSource(testFileUrl("ratios_smallContent.qml"));
-+ QTRY_COMPARE(window->status(), QQuickView::Ready);
-+ QQuickViewTestUtil::centerOnScreen(window.data());
-+ QQuickViewTestUtil::moveMouseAway(window.data());
-+ window->setTitle(QTest::currentTestFunction());
-+ window->show();
-+ QVERIFY(QTest::qWaitForWindowExposed(window.data()));
-+ QQuickItem *root = window->rootObject();
-+ QVERIFY(root);
-+ QQuickFlickable *obj = qobject_cast<QQuickFlickable*>(root);
-+ QVERIFY(obj != 0);
-+
-+ //doublecheck the item, as specified by contentWidth/Height, fits in the view
-+ //use tryCompare to allow a bit of stabilization in component's properties
-+ QTRY_COMPARE(obj->leftMargin() + obj->contentWidth() + obj->rightMargin() <= obj->width(), true);
-+ QTRY_COMPARE(obj->topMargin() + obj->contentHeight() + obj->bottomMargin() <= obj->height(), true);
-+
-+ //the whole item fits in the flickable, heightRatio should be 1
-+ QCOMPARE(obj->property("heightRatioIs").toDouble(), 1.);
-+ QCOMPARE(obj->property("widthRatioIs").toDouble(), 1.);
-+}
-+
-+
- QTEST_MAIN(tst_qquickflickable)
-
- #include "tst_qquickflickable.moc"
---
-2.7.4
-
diff --git a/debian/patches/QQuickWindow-Fill-out-timestamps-in-QHoverEvents-sen.patch b/debian/patches/QQuickWindow-Fill-out-timestamps-in-QHoverEvents-sen.patch
deleted file mode 100644
index e5de93d..0000000
--- a/debian/patches/QQuickWindow-Fill-out-timestamps-in-QHoverEvents-sen.patch
+++ /dev/null
@@ -1,261 +0,0 @@
-From e4f7ab42c6c4f19eed76d9d0de5accda5835a3a8 Mon Sep 17 00:00:00 2001
-From: Daniel d'Andrada <daniel.dandrada at canonical.com>
-Date: Wed, 6 Jul 2016 17:01:35 -0300
-Subject: [PATCH] QQuickWindow: Fill out timestamps in QHoverEvents sent to
- QQuickItems
-
-Task-number: QTBUG-54600
-Change-Id: Ie24c44e2f68aae55ff1146c13c3dfc25349b7a29
-Reviewed-by: Frederik Gladhorn <frederik.gladhorn at qt.io>
-Reviewed-by: Robin Burchell <robin.burchell at viroteck.net>
-Reviewed-by: Shawn Rutledge <shawn.rutledge at qt.io>
----
- src/quick/items/qquickwindow.cpp | 28 +++----
- src/quick/items/qquickwindow_p.h | 6 +-
- tests/auto/quick/qquickwindow/tst_qquickwindow.cpp | 85 ++++++++++++++++++++++
- 3 files changed, 103 insertions(+), 16 deletions(-)
-
-diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
-index 14e7915..de1b5f2 100644
---- a/src/quick/items/qquickwindow.cpp
-+++ b/src/quick/items/qquickwindow.cpp
-@@ -661,10 +661,10 @@ bool QQuickWindowPrivate::translateTouchToMouse(QQuickItem *item, QTouchEvent *e
- lastMousePosition = me->windowPos();
-
- bool accepted = me->isAccepted();
-- bool delivered = deliverHoverEvent(contentItem, me->windowPos(), last, me->modifiers(), accepted);
-+ bool delivered = deliverHoverEvent(contentItem, me->windowPos(), last, me->modifiers(), me->timestamp(), accepted);
- if (!delivered) {
- //take care of any exits
-- accepted = clearHover();
-+ accepted = clearHover(me->timestamp());
- }
- me->setAccepted(accepted);
- break;
-@@ -1397,7 +1397,7 @@ QQuickItem *QQuickWindow::mouseGrabberItem() const
- }
-
-
--bool QQuickWindowPrivate::clearHover()
-+bool QQuickWindowPrivate::clearHover(ulong timestamp)
- {
- Q_Q(QQuickWindow);
- if (hoverItems.isEmpty())
-@@ -1407,7 +1407,7 @@ bool QQuickWindowPrivate::clearHover()
-
- bool accepted = false;
- foreach (QQuickItem* item, hoverItems)
-- accepted = sendHoverEvent(QEvent::HoverLeave, item, pos, pos, QGuiApplication::keyboardModifiers(), true) || accepted;
-+ accepted = sendHoverEvent(QEvent::HoverLeave, item, pos, pos, QGuiApplication::keyboardModifiers(), timestamp, true) || accepted;
- hoverItems.clear();
- return accepted;
- }
-@@ -1657,13 +1657,15 @@ void QQuickWindow::mouseDoubleClickEvent(QMouseEvent *event)
-
- bool QQuickWindowPrivate::sendHoverEvent(QEvent::Type type, QQuickItem *item,
- const QPointF &scenePos, const QPointF &lastScenePos,
-- Qt::KeyboardModifiers modifiers, bool accepted)
-+ Qt::KeyboardModifiers modifiers, ulong timestamp,
-+ bool accepted)
- {
- Q_Q(QQuickWindow);
- const QTransform transform = QQuickItemPrivate::get(item)->windowToItemTransform();
-
- //create copy of event
- QHoverEvent hoverEvent(type, transform.map(scenePos), transform.map(lastScenePos), modifiers);
-+ hoverEvent.setTimestamp(timestamp);
- hoverEvent.setAccepted(accepted);
-
- QSet<QQuickItem *> hasFiltered;
-@@ -1699,10 +1701,10 @@ void QQuickWindow::mouseMoveEvent(QMouseEvent *event)
- d->lastMousePosition = event->windowPos();
-
- bool accepted = event->isAccepted();
-- bool delivered = d->deliverHoverEvent(d->contentItem, event->windowPos(), last, event->modifiers(), accepted);
-+ bool delivered = d->deliverHoverEvent(d->contentItem, event->windowPos(), last, event->modifiers(), event->timestamp(), accepted);
- if (!delivered) {
- //take care of any exits
-- accepted = d->clearHover();
-+ accepted = d->clearHover(event->timestamp());
- }
- event->setAccepted(accepted);
- return;
-@@ -1712,7 +1714,7 @@ void QQuickWindow::mouseMoveEvent(QMouseEvent *event)
- }
-
- bool QQuickWindowPrivate::deliverHoverEvent(QQuickItem *item, const QPointF &scenePos, const QPointF &lastScenePos,
-- Qt::KeyboardModifiers modifiers, bool &accepted)
-+ Qt::KeyboardModifiers modifiers, ulong timestamp, bool &accepted)
- {
- Q_Q(QQuickWindow);
- QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
-@@ -1728,7 +1730,7 @@ bool QQuickWindowPrivate::deliverHoverEvent(QQuickItem *item, const QPointF &sce
- QQuickItem *child = children.at(ii);
- if (!child->isVisible() || !child->isEnabled() || QQuickItemPrivate::get(child)->culled)
- continue;
-- if (deliverHoverEvent(child, scenePos, lastScenePos, modifiers, accepted))
-+ if (deliverHoverEvent(child, scenePos, lastScenePos, modifiers, timestamp, accepted))
- return true;
- }
-
-@@ -1737,7 +1739,7 @@ bool QQuickWindowPrivate::deliverHoverEvent(QQuickItem *item, const QPointF &sce
- if (item->contains(p)) {
- if (!hoverItems.isEmpty() && hoverItems[0] == item) {
- //move
-- accepted = sendHoverEvent(QEvent::HoverMove, item, scenePos, lastScenePos, modifiers, accepted);
-+ accepted = sendHoverEvent(QEvent::HoverMove, item, scenePos, lastScenePos, modifiers, timestamp, accepted);
- } else {
- QList<QQuickItem *> itemsToHover;
- QQuickItem* parent = item;
-@@ -1748,12 +1750,12 @@ bool QQuickWindowPrivate::deliverHoverEvent(QQuickItem *item, const QPointF &sce
- // Leaving from previous hovered items until we reach the item or one of its ancestors.
- while (!hoverItems.isEmpty() && !itemsToHover.contains(hoverItems[0])) {
- QQuickItem *hoverLeaveItem = hoverItems.takeFirst();
-- sendHoverEvent(QEvent::HoverLeave, hoverLeaveItem, scenePos, lastScenePos, modifiers, accepted);
-+ sendHoverEvent(QEvent::HoverLeave, hoverLeaveItem, scenePos, lastScenePos, modifiers, timestamp, accepted);
- }
-
- if (!hoverItems.isEmpty() && hoverItems[0] == item){//Not entering a new Item
- // ### Shouldn't we send moves for the parent items as well?
-- accepted = sendHoverEvent(QEvent::HoverMove, item, scenePos, lastScenePos, modifiers, accepted);
-+ accepted = sendHoverEvent(QEvent::HoverMove, item, scenePos, lastScenePos, modifiers, timestamp, accepted);
- } else {
- // Enter items that are not entered yet.
- int startIdx = -1;
-@@ -1772,7 +1774,7 @@ bool QQuickWindowPrivate::deliverHoverEvent(QQuickItem *item, const QPointF &sce
- // itemToHoverPrivate->window here prevents that case.
- if (itemToHoverPrivate->window == q && itemToHoverPrivate->hoverEnabled) {
- hoverItems.prepend(itemToHover);
-- sendHoverEvent(QEvent::HoverEnter, itemToHover, scenePos, lastScenePos, modifiers, accepted);
-+ sendHoverEvent(QEvent::HoverEnter, itemToHover, scenePos, lastScenePos, modifiers, timestamp, accepted);
- }
- }
- }
-diff --git a/src/quick/items/qquickwindow_p.h b/src/quick/items/qquickwindow_p.h
-index 33aa021..be7252d 100644
---- a/src/quick/items/qquickwindow_p.h
-+++ b/src/quick/items/qquickwindow_p.h
-@@ -155,14 +155,14 @@ public:
- bool deliverTouchCancelEvent(QTouchEvent *);
- void deliverDelayedTouchEvent();
- void flushDelayedTouchEvent();
-- bool deliverHoverEvent(QQuickItem *, const QPointF &scenePos, const QPointF &lastScenePos, Qt::KeyboardModifiers modifiers, bool &accepted);
-+ bool deliverHoverEvent(QQuickItem *, const QPointF &scenePos, const QPointF &lastScenePos, Qt::KeyboardModifiers modifiers, ulong timestamp, bool &accepted);
- bool deliverMatchingPointsToItem(QQuickItem *item, QTouchEvent *event, QSet<int> *acceptedNewPoints, const QSet<int> &matchingNewPoints, const QList<QTouchEvent::TouchPoint> &matchingPoints, QSet<QQuickItem*> *filtered);
- QTouchEvent *touchEventForItemBounds(QQuickItem *target, const QTouchEvent &originalEvent);
- QTouchEvent *touchEventWithPoints(const QTouchEvent &event, const QList<QTouchEvent::TouchPoint> &newPoints);
- bool sendFilteredTouchEvent(QQuickItem *target, QQuickItem *item, QTouchEvent *event, QSet<QQuickItem*> *filtered);
- bool sendHoverEvent(QEvent::Type, QQuickItem *, const QPointF &scenePos, const QPointF &lastScenePos,
-- Qt::KeyboardModifiers modifiers, bool accepted);
-- bool clearHover();
-+ Qt::KeyboardModifiers modifiers, ulong timestamp, bool accepted);
-+ bool clearHover(ulong timestamp = 0);
- #ifndef QT_NO_DRAGANDDROP
- void deliverDragEvent(QQuickDragGrabber *, QEvent *);
- bool deliverDragEvent(QQuickDragGrabber *, QQuickItem *, QDragMoveEvent *);
-diff --git a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
-index c597cf0..b03cb85 100644
---- a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
-+++ b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
-@@ -371,6 +371,7 @@ private slots:
- void testRenderJob();
-
- void testHoverChildMouseEventFilter();
-+ void testHoverTimestamp();
- private:
- QTouchDevice *touchDevice;
- QTouchDevice *touchDeviceWithVelocity;
-@@ -2282,6 +2283,90 @@ void tst_qquickwindow::testHoverChildMouseEventFilter()
- QCOMPARE(middleItem->eventCount(QEvent::HoverEnter), 0);
- }
-
-+class HoverTimestampConsumer : public QQuickItem
-+{
-+ Q_OBJECT
-+public:
-+ HoverTimestampConsumer(QQuickItem *parent = 0)
-+ : QQuickItem(parent)
-+ {
-+ setAcceptHoverEvents(true);
-+ }
-+
-+ void hoverEnterEvent(QHoverEvent *event) { hoverTimestamps << event->timestamp(); }
-+ void hoverLeaveEvent(QHoverEvent *event) { hoverTimestamps << event->timestamp(); }
-+ void hoverMoveEvent(QHoverEvent *event) { hoverTimestamps << event->timestamp(); }
-+
-+ QList<ulong> hoverTimestamps;
-+};
-+
-+// Checks that a QHoverEvent carries the timestamp of the QMouseEvent that caused it.
-+// QTBUG-54600
-+void tst_qquickwindow::testHoverTimestamp()
-+{
-+ QQuickWindow window;
-+
-+ window.resize(200, 200);
-+ window.setPosition(100, 100);
-+ window.setTitle(QTest::currentTestFunction());
-+ window.show();
-+ QVERIFY(QTest::qWaitForWindowActive(&window));
-+
-+ HoverTimestampConsumer *hoverConsumer = new HoverTimestampConsumer(window.contentItem());
-+ hoverConsumer->setWidth(100);
-+ hoverConsumer->setHeight(100);
-+ hoverConsumer->setX(50);
-+ hoverConsumer->setY(50);
-+
-+ // First position, outside
-+ {
-+ QMouseEvent mouseEvent(QEvent::MouseMove, QPointF(40, 40), QPointF(40, 40), QPointF(140, 140),
-+ Qt::NoButton, Qt::NoButton, Qt::NoModifier, Qt::MouseEventNotSynthesized);
-+ mouseEvent.setTimestamp(10);
-+ QVERIFY(QCoreApplication::sendEvent(&window, &mouseEvent));
-+ }
-+
-+ // Enter
-+ {
-+ QMouseEvent mouseEvent(QEvent::MouseMove, QPointF(50, 50), QPointF(50, 50), QPointF(150, 150),
-+ Qt::NoButton, Qt::NoButton, Qt::NoModifier, Qt::MouseEventNotSynthesized);
-+ mouseEvent.setTimestamp(20);
-+ QVERIFY(QCoreApplication::sendEvent(&window, &mouseEvent));
-+ }
-+ QCOMPARE(hoverConsumer->hoverTimestamps.size(), 1);
-+ QCOMPARE(hoverConsumer->hoverTimestamps.last(), 20UL);
-+
-+ // Move
-+ {
-+ QMouseEvent mouseEvent(QEvent::MouseMove, QPointF(60, 60), QPointF(60, 60), QPointF(160, 160),
-+ Qt::NoButton, Qt::NoButton, Qt::NoModifier, Qt::MouseEventNotSynthesized);
-+ mouseEvent.setTimestamp(30);
-+ QVERIFY(QCoreApplication::sendEvent(&window, &mouseEvent));
-+ }
-+ QCOMPARE(hoverConsumer->hoverTimestamps.size(), 2);
-+ QCOMPARE(hoverConsumer->hoverTimestamps.last(), 30UL);
-+
-+ // Move
-+ {
-+ QMouseEvent mouseEvent(QEvent::MouseMove, QPointF(100, 100), QPointF(100, 100), QPointF(200, 200),
-+ Qt::NoButton, Qt::NoButton, Qt::NoModifier, Qt::MouseEventNotSynthesized);
-+ mouseEvent.setTimestamp(40);
-+ QVERIFY(QCoreApplication::sendEvent(&window, &mouseEvent));
-+ }
-+ QCOMPARE(hoverConsumer->hoverTimestamps.size(), 3);
-+ QCOMPARE(hoverConsumer->hoverTimestamps.last(), 40UL);
-+
-+ // Leave
-+ {
-+ QMouseEvent mouseEvent(QEvent::MouseMove, QPointF(160, 160), QPointF(160, 160), QPointF(260, 260),
-+ Qt::NoButton, Qt::NoButton, Qt::NoModifier, Qt::MouseEventNotSynthesized);
-+ mouseEvent.setTimestamp(5);
-+ QVERIFY(QCoreApplication::sendEvent(&window, &mouseEvent));
-+ }
-+ QCOMPARE(hoverConsumer->hoverTimestamps.size(), 4);
-+ QCOMPARE(hoverConsumer->hoverTimestamps.last(), 5UL);
-+}
-+
- QTEST_MAIN(tst_qquickwindow)
-
- #include "tst_qquickwindow.moc"
---
-2.8.1
-
diff --git a/debian/patches/Revert-Remove-this-piece-of-code.patch b/debian/patches/Revert-Remove-this-piece-of-code.patch
deleted file mode 100644
index 416e785..0000000
--- a/debian/patches/Revert-Remove-this-piece-of-code.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 6371b208a9e55845090dcd34234e314c6587c105 Mon Sep 17 00:00:00 2001
-From: Simon Hausmann <simon.hausmann at theqtcompany.com>
-Date: Tue, 17 May 2016 15:18:12 +0200
-Subject: [PATCH] Revert "Remove this piece of code"
-
-This reverts commit bad007360a0f6fba304d8f4c99826a1250fd886c.
-
-The lookup in the global object is necessary to detect whether we've seen any
-unresolved properties. This is used for the optimization of skipping binding
-refresh updates when a context property changes.
-
-Task-number: QTBUG-53431
-Change-Id: Idb39a32e4b58b915496bbb9d8a098dc17a6f688a
-Reviewed-by: Lars Knoll <lars.knoll at theqtcompany.com>
----
- src/qml/qml/qqmlcontextwrapper.cpp | 13 +++++++++++--
- tests/auto/qml/qqmlcontext/data/qtbug_53431.qml | 7 +++++++
- tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp | 14 ++++++++++++++
- 3 files changed, 32 insertions(+), 2 deletions(-)
- create mode 100644 tests/auto/qml/qqmlcontext/data/qtbug_53431.qml
-
-diff --git a/src/qml/qml/qqmlcontextwrapper.cpp b/src/qml/qml/qqmlcontextwrapper.cpp
-index 0d84c3b..e3770a7 100644
---- a/src/qml/qml/qqmlcontextwrapper.cpp
-+++ b/src/qml/qml/qqmlcontextwrapper.cpp
-@@ -99,14 +99,23 @@ ReturnedValue QmlContextWrapper::get(const Managed *m, String *name, bool *hasPr
- QV4::ExecutionEngine *v4 = resource->engine();
- QV4::Scope scope(v4);
-
-+ // In V8 the JS global object would come _before_ the QML global object,
-+ // so simulate that here.
-+ bool hasProp;
-+ QV4::ScopedValue result(scope, v4->globalObject->get(name, &hasProp));
-+ if (hasProp) {
-+ if (hasProperty)
-+ *hasProperty = hasProp;
-+ return result->asReturnedValue();
-+ }
-+
- if (resource->d()->isNullWrapper)
- return Object::get(m, name, hasProperty);
-
- if (v4->callingQmlContext() != resource->d()->context)
- return Object::get(m, name, hasProperty);
-
-- bool hasProp;
-- QV4::ScopedValue result(scope, Object::get(m, name, &hasProp));
-+ result = Object::get(m, name, &hasProp);
- if (hasProp) {
- if (hasProperty)
- *hasProperty = hasProp;
-diff --git a/tests/auto/qml/qqmlcontext/data/qtbug_53431.qml b/tests/auto/qml/qqmlcontext/data/qtbug_53431.qml
-new file mode 100644
-index 0000000..2ceee2b
---- /dev/null
-+++ b/tests/auto/qml/qqmlcontext/data/qtbug_53431.qml
-@@ -0,0 +1,7 @@
-+import QtQml 2.0
-+QtObject {
-+ property int value: {
-+ console.log("lookup in global object")
-+ return 1
-+ }
-+}
-diff --git a/tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp b/tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp
-index 18ef7ac..d338e6f 100644
---- a/tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp
-+++ b/tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp
-@@ -61,6 +61,7 @@ private slots:
- void refreshExpressions();
- void refreshExpressionsCrash();
- void refreshExpressionsRootContext();
-+ void skipExpressionRefresh_qtbug_53431();
-
- void qtbug_22535();
- void evalAfterInvalidate();
-@@ -642,6 +643,19 @@ void tst_qqmlcontext::refreshExpressionsRootContext()
- delete o1;
- }
-
-+void tst_qqmlcontext::skipExpressionRefresh_qtbug_53431()
-+{
-+ QQmlEngine engine;
-+ QQmlComponent component(&engine, testFileUrl("qtbug_53431.qml"));
-+ QScopedPointer<QObject> object(component.create(0));
-+ QVERIFY(!object.isNull());
-+ QCOMPARE(object->property("value").toInt(), 1);
-+ object->setProperty("value", 10);
-+ QCOMPARE(object->property("value").toInt(), 10);
-+ engine.rootContext()->setContextProperty("randomContextProperty", 42);
-+ QCOMPARE(object->property("value").toInt(), 10);
-+}
-+
- void tst_qqmlcontext::qtbug_22535()
- {
- QQmlEngine engine;
---
-2.9.3
-
diff --git a/debian/patches/V4-Always-set-the-tag-when-boxing-a-pointer-in-QV4-V.patch b/debian/patches/V4-Always-set-the-tag-when-boxing-a-pointer-in-QV4-V.patch
deleted file mode 100644
index 4a1bfc9..0000000
--- a/debian/patches/V4-Always-set-the-tag-when-boxing-a-pointer-in-QV4-V.patch
+++ /dev/null
@@ -1,374 +0,0 @@
-From aa7c3b35ef9b737c574f436ea35452019a2ff29c Mon Sep 17 00:00:00 2001
-From: Erik Verbruggen <erik.verbruggen at digia.com>
-Date: Thu, 16 Jun 2016 13:39:57 +0200
-Subject: [PATCH] V4: Always set the tag when boxing a pointer in QV4::Value.
-
-All setters now store tags, so no-one can play loosy-goosy with the
-boxed values (and accidentally forget to "tag" a value, resulting in
-random garbage).
-
-Change-Id: Ia0b78aa038d3ff46d5292b14bd593de310da16a0
-Reviewed-by: Simon Hausmann <simon.hausmann at qt.io>
----
- .../qmldbg_debugger/qqmlnativedebugservice.cpp | 2 +-
- src/qml/jsruntime/qv4arraydata.cpp | 10 +--
- src/qml/jsruntime/qv4objectiterator.cpp | 5 --
- src/qml/jsruntime/qv4persistent.cpp | 9 +--
- src/qml/jsruntime/qv4scopedvalue_p.h | 16 +---
- src/qml/jsruntime/qv4value_p.h | 94 ++++++++++++----------
- 6 files changed, 63 insertions(+), 73 deletions(-)
-
-diff --git a/src/plugins/qmltooling/qmldbg_debugger/qqmlnativedebugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qqmlnativedebugservice.cpp
-index f5cc78e..24d2a82 100644
---- a/src/plugins/qmltooling/qmldbg_debugger/qqmlnativedebugservice.cpp
-+++ b/src/plugins/qmltooling/qmldbg_debugger/qqmlnativedebugservice.cpp
-@@ -549,7 +549,7 @@ void NativeDebugger::handleExpressions(QJsonObject *response, const QJsonObject
- dict[QStringLiteral("name")] = name;
- dict[QStringLiteral("valueencoded")] = QStringLiteral("undefined");
- output.append(dict);
-- } else if (result.ptr && result.ptr->_val) {
-+ } else if (result.ptr && result.ptr->rawValue()) {
- collector.collect(&output, QString(), name, *result);
- } else {
- QJsonObject dict;
-diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp
-index bd736d7..ec0e611 100644
---- a/src/qml/jsruntime/qv4arraydata.cpp
-+++ b/src/qml/jsruntime/qv4arraydata.cpp
-@@ -93,8 +93,8 @@ Q_STATIC_ASSERT(sizeof(Heap::ArrayData) == sizeof(Heap::SparseArrayData));
-
- static Q_ALWAYS_INLINE void storeValue(ReturnedValue *target, uint value)
- {
-- Value v = Value::fromReturnedValue(*target);
-- v.setValue(value);
-+ Value v;
-+ v.setTagValue(Value::fromReturnedValue(*target).tag(), value);
- *target = v.asReturnedValue();
- }
-
-@@ -189,7 +189,7 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt
- n->value = i;
- } else {
- storeValue(lastFree, i);
-- sparse->arrayData[i].setTag(Value::Empty_Type);
-+ sparse->arrayData[i].setEmpty();
- lastFree = &sparse->arrayData[i].rawValueRef();
- }
- }
-@@ -198,7 +198,7 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt
- if (toCopy < sparse->alloc) {
- for (uint i = toCopy; i < sparse->alloc; ++i) {
- storeValue(lastFree, i);
-- sparse->arrayData[i].setTag(Value::Empty_Type);
-+ sparse->arrayData[i].setEmpty();
- lastFree = &sparse->arrayData[i].rawValueRef();
- }
- storeValue(lastFree, UINT_MAX);
-@@ -396,7 +396,7 @@ uint SparseArrayData::allocate(Object *o, bool doubleSlot)
- // found two slots in a row
- uint idx = Value::fromReturnedValue(*last).uint_32();
- Value lastV = Value::fromReturnedValue(*last);
-- lastV.setValue(dd->arrayData[lastV.value() + 1].value());
-+ lastV.setTagValue(lastV.tag(), dd->arrayData[lastV.value() + 1].value());
- *last = lastV.rawValue();
- dd->attrs[idx] = Attr_Accessor;
- return idx;
-diff --git a/src/qml/jsruntime/qv4objectiterator.cpp b/src/qml/jsruntime/qv4objectiterator.cpp
-index 1413f43..d4587df 100644
---- a/src/qml/jsruntime/qv4objectiterator.cpp
-+++ b/src/qml/jsruntime/qv4objectiterator.cpp
-@@ -68,11 +68,6 @@ void ObjectIterator::init(const Object *o)
- object->setM(o ? o->m() : 0);
- current->setM(o ? o->m() : 0);
-
--#ifndef QV4_USE_64_BIT_VALUE_ENCODING
-- object->setTag(QV4::Value::Managed_Type);
-- current->setTag(QV4::Value::Managed_Type);
--#endif
--
- if (object->as<ArgumentsObject>()) {
- Scope scope(engine);
- Scoped<ArgumentsObject> (scope, object->asReturnedValue())->fullyCreate();
-diff --git a/src/qml/jsruntime/qv4persistent.cpp b/src/qml/jsruntime/qv4persistent.cpp
-index 1b0d638..fd3bd1f 100644
---- a/src/qml/jsruntime/qv4persistent.cpp
-+++ b/src/qml/jsruntime/qv4persistent.cpp
-@@ -79,11 +79,9 @@ Page *allocatePage(PersistentValueStorage *storage)
- if (p->header.next)
- p->header.next->header.prev = &p->header.next;
- for (int i = 0; i < kEntriesPerPage - 1; ++i) {
-- p->values[i].setTag(QV4::Value::Empty_Type);
-- p->values[i].setInt_32(i + 1);
-+ p->values[i].setEmpty(i + 1);
- }
-- p->values[kEntriesPerPage - 1].setTag(QV4::Value::Empty_Type);
-- p->values[kEntriesPerPage - 1].setInt_32(-1);
-+ p->values[kEntriesPerPage - 1].setEmpty(-1);
-
- storage->firstPage = p;
-
-@@ -205,8 +203,7 @@ void PersistentValueStorage::free(Value *v)
-
- Page *p = getPage(v);
-
-- v->setTag(QV4::Value::Empty_Type);
-- v->setInt_32(p->header.freeList);
-+ v->setEmpty(p->header.freeList);
- p->header.freeList = v - p->values;
- if (!--p->header.refCount)
- freePage(p);
-diff --git a/src/qml/jsruntime/qv4scopedvalue_p.h b/src/qml/jsruntime/qv4scopedvalue_p.h
-index ca7efb1..0b063ee 100644
---- a/src/qml/jsruntime/qv4scopedvalue_p.h
-+++ b/src/qml/jsruntime/qv4scopedvalue_p.h
-@@ -120,9 +120,6 @@ struct ScopedValue
- {
- ptr = scope.engine->jsStackTop++;
- ptr->setM(o);
--#ifndef QV4_USE_64_BIT_VALUE_ENCODING
-- ptr->setTag(QV4::Value::Managed_Type);
--#endif
- }
-
- ScopedValue(const Scope &scope, Managed *m)
-@@ -144,9 +141,6 @@ struct ScopedValue
-
- ScopedValue &operator=(Heap::Base *o) {
- ptr->setM(o);
--#ifndef QV4_USE_64_BIT_VALUE_ENCODING
-- ptr->setTag(QV4::Value::Managed_Type);
--#endif
- return *this;
- }
-
-@@ -186,18 +180,12 @@ struct Scoped
-
- inline void setPointer(const Managed *p) {
- ptr->setM(p ? p->m() : 0);
--#ifndef QV4_USE_64_BIT_VALUE_ENCODING
-- ptr->setTag(QV4::Value::Managed_Type);
--#endif
- }
-
- Scoped(const Scope &scope)
- {
- ptr = scope.engine->jsStackTop++;
- ptr->setM(0);
--#ifndef QV4_USE_64_BIT_VALUE_ENCODING
-- ptr->setTag(QV4::Value::Managed_Type);
--#endif
- }
-
- Scoped(const Scope &scope, const Value &v)
-@@ -339,14 +327,14 @@ struct ScopedCallData {
-
- inline Value &Value::operator =(const ScopedValue &v)
- {
-- _val = v.ptr->val();
-+ _val = v.ptr->rawValue();
- return *this;
- }
-
- template<typename T>
- inline Value &Value::operator=(const Scoped<T> &t)
- {
-- _val = t.ptr->val();
-+ _val = t.ptr->rawValue();
- return *this;
- }
-
-diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h
-index 6bd3935..7c2bb31 100644
---- a/src/qml/jsruntime/qv4value_p.h
-+++ b/src/qml/jsruntime/qv4value_p.h
-@@ -66,6 +66,7 @@ typedef uint Bool;
-
- struct Q_QML_PRIVATE_EXPORT Value
- {
-+private:
- /*
- We use two different ways of encoding JS values. One for 32bit and one for 64bit systems.
-
-@@ -90,10 +91,10 @@ struct Q_QML_PRIVATE_EXPORT Value
-
- quint64 _val;
-
-- Q_ALWAYS_INLINE quint64 val() const { return _val; }
-- Q_ALWAYS_INLINE void setVal(quint64 v) { _val = v; }
-- Q_ALWAYS_INLINE void setValue(quint32 v) { memcpy(&_val, &v, 4); }
-- Q_ALWAYS_INLINE void setTag(quint32 t) { memcpy(4 + (quint8 *)&_val, &t, 4); }
-+public:
-+ Q_ALWAYS_INLINE quint64 &rawValueRef() { return _val; }
-+ Q_ALWAYS_INLINE quint64 rawValue() const { return _val; }
-+ Q_ALWAYS_INLINE void setRawValue(quint64 raw) { _val = raw; }
-
- #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
- static inline int valueOffset() { return 0; }
-@@ -113,17 +114,53 @@ struct Q_QML_PRIVATE_EXPORT Value
- Q_ALWAYS_INLINE Heap::Base *m() const { Q_UNREACHABLE(); return Q_NULLPTR; }
- Q_ALWAYS_INLINE void setM(Heap::Base *b) { Q_UNUSED(b); Q_UNREACHABLE(); }
- #elif defined(QV4_USE_64_BIT_VALUE_ENCODING)
-- Q_ALWAYS_INLINE Heap::Base *m() const { Heap::Base *b; memcpy(&b, &_val, 8); return b; }
-- Q_ALWAYS_INLINE void setM(Heap::Base *b) { memcpy(&_val, &b, 8); }
-+ Q_ALWAYS_INLINE Heap::Base *m() const
-+ {
-+ Heap::Base *b;
-+ memcpy(&b, &_val, 8);
-+ return b;
-+ }
-+ Q_ALWAYS_INLINE void setM(Heap::Base *b)
-+ {
-+ memcpy(&_val, &b, 8);
-+ }
- #else // !QV4_USE_64_BIT_VALUE_ENCODING
-- Q_ALWAYS_INLINE Heap::Base *m() const { Q_STATIC_ASSERT(sizeof(Heap::Base*) == sizeof(quint32)); Heap::Base *b; quint32 v = value(); memcpy(&b, &v, 4); return b; }
-- Q_ALWAYS_INLINE void setM(Heap::Base *b) { quint32 v; memcpy(&v, &b, 4); setValue(v); }
-+ Q_ALWAYS_INLINE Heap::Base *m() const
-+ {
-+ Q_STATIC_ASSERT(sizeof(Heap::Base*) == sizeof(quint32));
-+ Heap::Base *b;
-+ quint32 v = value();
-+ memcpy(&b, &v, 4);
-+ return b;
-+ }
-+ Q_ALWAYS_INLINE void setM(Heap::Base *b)
-+ {
-+ quint32 v;
-+ memcpy(&v, &b, 4);
-+ setTagValue(Managed_Type, v);
-+ }
- #endif
-
-- Q_ALWAYS_INLINE int int_32() const { int i; quint32 v = value(); memcpy(&i, &v, 4); return i; }
-- Q_ALWAYS_INLINE void setInt_32(int i) { quint32 u; memcpy(&u, &i, 4); setValue(u); }
-+ Q_ALWAYS_INLINE int int_32() const
-+ {
-+ return int(value());
-+ }
-+ Q_ALWAYS_INLINE void setInt_32(int i)
-+ {
-+ setTagValue(Integer_Type_Internal, quint32(i));
-+ }
- Q_ALWAYS_INLINE uint uint_32() const { return value(); }
-
-+ Q_ALWAYS_INLINE void setEmpty()
-+ {
-+ setTagValue(Empty_Type, value());
-+ }
-+
-+ Q_ALWAYS_INLINE void setEmpty(int i)
-+ {
-+ setTagValue(Empty_Type, quint32(i));
-+ }
-+
- #ifndef QV4_USE_64_BIT_VALUE_ENCODING
- enum Masks {
- SilentNaNBit = 0x00040000,
-@@ -260,7 +297,6 @@ struct Q_QML_PRIVATE_EXPORT Value
- int i = (int)d;
- if (i == d) {
- setInt_32(i);
-- setTag(Integer_Type_Internal);
- return true;
- }
- }
-@@ -292,22 +328,10 @@ struct Q_QML_PRIVATE_EXPORT Value
- return m();
- }
-
-- Q_ALWAYS_INLINE quint64 &rawValueRef() {
-- return _val;
-- }
-- Q_ALWAYS_INLINE quint64 rawValue() const {
-- return _val;
-- }
-- Q_ALWAYS_INLINE void setRawValue(quint64 raw) { _val = raw; }
--
- static inline Value fromHeapObject(Heap::Base *m)
- {
- Value v;
-- v.setRawValue(0);
- v.setM(m);
--#ifndef QV4_USE_64_BIT_VALUE_ENCODING
-- v.setTag(Managed_Type);
--#endif
- return v;
- }
-
-@@ -328,7 +352,7 @@ struct Q_QML_PRIVATE_EXPORT Value
- inline bool tryIntegerConversion() {
- bool b = integerCompatible();
- if (b)
-- setTag(Integer_Type_Internal);
-+ setTagValue(Integer_Type_Internal, value());
- return b;
- }
-
-@@ -378,7 +402,7 @@ struct Q_QML_PRIVATE_EXPORT Value
- Value &operator=(ReturnedValue v) { _val = v; return *this; }
- Value &operator=(Managed *m) {
- if (!m) {
-- setTagValue(Undefined_Type, 0);
-+ setM(0);
- } else {
- _val = reinterpret_cast<Value *>(m)->_val;
- }
-@@ -386,9 +410,6 @@ struct Q_QML_PRIVATE_EXPORT Value
- }
- Value &operator=(Heap::Base *o) {
- setM(o);
--#ifndef QV4_USE_64_BIT_VALUE_ENCODING
-- setTag(Managed_Type);
--#endif
- return *this;
- }
-
-@@ -479,13 +500,7 @@ struct Q_QML_PRIVATE_EXPORT Primitive : public Value
- inline Primitive Primitive::undefinedValue()
- {
- Primitive v;
--#ifdef QV4_USE_64_BIT_VALUE_ENCODING
-- v.setRawValue(quint64(Undefined_Type) << Tag_Shift);
--#else
-- v.setRawValue(0);
-- v.setTag(Undefined_Type);
-- v.setValue(0);
--#endif
-+ v.setTagValue(Undefined_Type, 0);
- return v;
- }
-
-@@ -499,11 +514,7 @@ inline Primitive Primitive::emptyValue()
- inline Primitive Primitive::nullValue()
- {
- Primitive v;
--#ifndef QV4_USE_64_BIT_VALUE_ENCODING
-- v.setRawValue(quint64(Null_Type_Internal) << Tag_Shift);
--#else
- v.setTagValue(Null_Type_Internal, 0);
--#endif
- return v;
- }
-
-@@ -524,7 +535,7 @@ inline Primitive Primitive::fromDouble(double d)
- inline Primitive Primitive::fromInt32(int i)
- {
- Primitive v;
-- v.setTagValue(Integer_Type_Internal, 0); // For mingw482, because it complains, and for VS9, because of internal compiler errors.
-+ v.setTagValue(Integer_Type_Internal, 0);
- v.setInt_32(i);
- return v;
- }
-@@ -533,8 +544,7 @@ inline Primitive Primitive::fromUInt32(uint i)
- {
- Primitive v;
- if (i < INT_MAX) {
-- v.setTagValue(Integer_Type_Internal, 0); // For mingw482, because it complains, and for VS9, because of internal compiler errors.
-- v.setInt_32((int)i);
-+ v.setTagValue(Integer_Type_Internal, i);
- } else {
- v.setDouble(i);
- }
---
-2.8.1
-
diff --git a/debian/patches/fix_test_remove_qlibraryinfo.patch b/debian/patches/fix_test_remove_qlibraryinfo.patch
index eab28f6..7502bea 100644
--- a/debian/patches/fix_test_remove_qlibraryinfo.patch
+++ b/debian/patches/fix_test_remove_qlibraryinfo.patch
@@ -93,13 +93,13 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -2,4 +2,7 @@ load(qt_build_config)
- CONFIG += qt_example_installs
+ load(qt_build_config)
CONFIG += warning_clean
+QMAKE_CXXFLAGS += -DTESTBINDIR=\\"$$PWD/bin\\"
+QMAKE_CXXFLAGS += -DTESTEXAMPLEDIR=\\"$$PWD/examples\\"
+
- MODULE_VERSION = 5.6.1
+ MODULE_VERSION = 5.6.2
--- a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
+++ b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
@@ -102,8 +102,7 @@ void tst_QQmlEngineDebugInspectorIntegra
diff --git a/debian/patches/no_lifetime_dse.diff b/debian/patches/no_lifetime_dse.diff
deleted file mode 100644
index f980eee..0000000
--- a/debian/patches/no_lifetime_dse.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-Description: workaround crashes in QtQml code related to dead-store elimination
-Origin: upstream, https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=fcc2c95421710f98
-Last-Update: 2016-08-29
-
---- a/src/qml/qml.pro
-+++ b/src/qml/qml.pro
-@@ -18,7 +18,7 @@
-
- greaterThan(QT_GCC_MAJOR_VERSION, 5) {
- # Our code is bad. Temporary workaround.
-- QMAKE_CXXFLAGS += -fno-delete-null-pointer-checks
-+ QMAKE_CXXFLAGS += -fno-delete-null-pointer-checks -fno-lifetime-dse
- }
-
- QMAKE_DOCS = $$PWD/doc/qtqml.qdocconf
diff --git a/debian/patches/qml_only_release_types_if_they_arent_referenced_anymore.patch b/debian/patches/qml_only_release_types_if_they_arent_referenced_anymore.patch
deleted file mode 100644
index fa5bd96..0000000
--- a/debian/patches/qml_only_release_types_if_they_arent_referenced_anymore.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 9b1231ca3d21ade574a8a7cf3f0805a8b520bcd5 Mon Sep 17 00:00:00 2001
-From: Ulf Hermann <ulf.hermann at qt.io>
-Date: Wed, 8 Jun 2016 17:32:32 +0200
-Subject: [PATCH] QML: Only release types if they aren't referenced anymore
-
-Just checking for references on m_compiledData is not enough. The
-actual component can also be referenced. Thus it won't be deleted
-on release(), but cannot be found in the type cache anymore.
-
-Task-number: QTBUG-53761
-Change-Id: I8567af8e75a078598e4fed31e4717134e1332278
-Reviewed-by: Mitch Curtis <mitch.curtis at qt.io>
-Reviewed-by: Simon Hausmann <simon.hausmann at qt.io>
-(cherry picked from commit 2ac19881f92c94f4e9427bd9ff513210675f259e)
----
- src/qml/qml/qqmltypeloader.cpp | 3 ++-
- tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp | 15 ++++++++++++---
- 2 files changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp
-index c684c86..01200fd 100644
---- a/src/qml/qml/qqmltypeloader.cpp
-+++ b/src/qml/qml/qqmltypeloader.cpp
-@@ -1961,7 +1961,8 @@ void QQmlTypeLoader::trimCache()
- QList<TypeCache::Iterator> unneededTypes;
- for (TypeCache::Iterator iter = m_typeCache.begin(), end = m_typeCache.end(); iter != end; ++iter) {
- QQmlTypeData *typeData = iter.value();
-- if (typeData->m_compiledData && typeData->m_compiledData->count() == 1) {
-+ if (typeData->m_compiledData && typeData->count() == 1
-+ && typeData->m_compiledData->count() == 1) {
- // There are no live objects of this type
- unneededTypes.append(iter);
- }
-diff --git a/tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp b/tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp
-index 7045c7c..a1eaa05 100644
---- a/tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp
-+++ b/tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp
-@@ -86,10 +86,19 @@ void tst_QQMLTypeLoader::trimCache()
- url.setQuery(QString::number(i));
-
- QQmlTypeData *data = loader.getType(url);
-- if (i % 5 == 0) // keep references to some of them so that they aren't trimmed
-- data->compiledData()->addref();
-+ // Run an event loop to receive the callback that release()es.
-+ QTRY_COMPARE(data->count(), 2);
-
-- data->release();
-+ // keep references to some of them so that they aren't trimmed. References to either the
-+ // QQmlTypeData or its compiledData() should prevent the trimming.
-+ if (i % 10 == 0) {
-+ // keep ref on data, don't add ref on data->compiledData()
-+ } else if (i % 5 == 0) {
-+ data->compiledData()->addref();
-+ data->release();
-+ } else {
-+ data->release();
-+ }
- }
-
- for (int i = 0; i < 256; ++i) {
---
-2.1.4
-
diff --git a/debian/patches/series b/debian/patches/series
index df2eb4a..a8df99a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,16 +1,9 @@
# Backported patches
QQuickItemView-forceLayout-Also-call-layout-when-d-f.patch
-qml_only_release_types_if_they_arent_referenced_anymore.patch
-no_lifetime_dse.diff
-V4-Always-set-the-tag-when-boxing-a-pointer-in-QV4-V.patch
-Fix-QQmlEngine-crash-on-big-endian-64-bit-architectu.patch
#Add-a-facility-to-version-type-information-for-debug.patch
#V4-Free-up-2-address-bits-in-64bit-mode.patch
fix-V4-on-big-endian.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
-Revert-Remove-this-piece-of-code.patch
#V4-Fix-usage-of-QV4-Value-tags-types.patch
# Debian patches
--
qtdeclarative packaging
More information about the pkg-kde-commits
mailing list