[SCM] qtdeclarative packaging branch, ubuntu, updated. ubuntu/5.6.1-7ubuntu1-2-g92afba1

Timo Jyrinki timo at moszumanska.debian.org
Mon Oct 3 13:12:59 UTC 2016


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

The following commit has been merged in the ubuntu branch:
commit d31f9f72fcfff6bac50aa67f1beeb4d963cf002b
Author: Timo Jyrinki <timo.jyrinki at canonical.com>
Date:   Mon Oct 3 13:11:47 2016 +0000

    debian/patches/Revert-Remove-this-piece-of-code.patch:
    
    * debian/patches/Revert-Remove-this-piece-of-code.patch:
      - Cherry-pick from Qt 5.6.2 (LP: #1613670)
---
 debian/changelog                                   |  7 ++
 .../patches/Revert-Remove-this-piece-of-code.patch | 99 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 107 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 0664c6b..3ca8913 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+qtdeclarative-opensource-src (5.6.1-7ubuntu2) UNRELEASED; urgency=medium
+
+  * debian/patches/Revert-Remove-this-piece-of-code.patch:
+    - Cherry-pick from Qt 5.6.2 (LP: #1613670)
+
+ -- Timo Jyrinki <timo-jyrinki at ubuntu.com>  Mon, 26 Sep 2016 13:13:20 +0000
+
 qtdeclarative-opensource-src (5.6.1-7ubuntu1~2) yakkety; urgency=medium
 
   * debian/patches/Fix-visibility-of-properties-in-value-types.patch:
diff --git a/debian/patches/Revert-Remove-this-piece-of-code.patch b/debian/patches/Revert-Remove-this-piece-of-code.patch
new file mode 100644
index 0000000..416e785
--- /dev/null
+++ b/debian/patches/Revert-Remove-this-piece-of-code.patch
@@ -0,0 +1,99 @@
+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/series b/debian/patches/series
index 672fd02..2c6f97b 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -8,6 +8,7 @@ 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
+Revert-Remove-this-piece-of-code.patch
 
 # Debian patches
 check_system_double-conversion.patch

-- 
qtdeclarative packaging



More information about the pkg-kde-commits mailing list