[SCM] qtdeclarative packaging branch, master, updated. debian/5.7.1-20161021-5-2-gf074362

Dmitry Shachnev mitya57 at moszumanska.debian.org
Wed Dec 14 10:27:43 UTC 2016


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

The following commit has been merged in the master branch:
commit f074362962d605b3005e4674acdcc50f87ac8769
Author: Dmitry Shachnev <mitya57 at gmail.com>
Date:   Wed Dec 14 13:16:38 2016 +0300

    Revert "Revert upstream commit c9ffed92a0dee0ae, which broke Qt Quick Controls."
    
    This reverts commit e6b6a0a486afc0ed057606cb4a1e85b4669728ec.
---
 debian/changelog                    |   1 +
 debian/libqt5qml5.symbols           |   2 +
 debian/libqt5quick5.symbols         |   2 +-
 debian/patches/revert_c9ffed92.diff | 421 ------------------------------------
 debian/patches/series               |   1 -
 5 files changed, 4 insertions(+), 423 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 12e60d8..ef446a2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ qtdeclarative-opensource-src (5.7.1~20161021-6) UNRELEASED; urgency=medium
 
   [ Dmitry Shachnev ]
   * New upstream final release.
+  * Drop revert_c9ffed92.diff, the issue has been properly fixed upstream.
 
  -- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org>  Wed, 14 Dec 2016 13:15:01 +0300
 
diff --git a/debian/libqt5qml5.symbols b/debian/libqt5qml5.symbols
index 9b47b6c..3661393 100644
--- a/debian/libqt5qml5.symbols
+++ b/debian/libqt5qml5.symbols
@@ -1579,6 +1579,8 @@ libQt5Qml.so.5 libqt5qml5 #MINVER#
  _ZN3QV44Heap14FunctionObjectC2Ev at Qt_5_PRIVATE_API 5.6.0~beta 1
  _ZN3QV44Heap14FunctionObjectD1Ev at Qt_5_PRIVATE_API 5.5.0 1
  _ZN3QV44Heap14FunctionObjectD2Ev at Qt_5_PRIVATE_API 5.5.0 1
+ _ZN3QV44Heap14QObjectWrapperC1EP7QObject at Qt_5_PRIVATE_API 5.7.1 1
+ _ZN3QV44Heap14QObjectWrapperC2EP7QObject at Qt_5_PRIVATE_API 5.7.1 1
  _ZN3QV44Heap15BuiltinFunctionC1EPNS_16ExecutionContextEPNS_6StringEPFyPNS_11CallContextEE at Qt_5_PRIVATE_API 5.5.0 1
  _ZN3QV44Heap15BuiltinFunctionC2EPNS_16ExecutionContextEPNS_6StringEPFyPNS_11CallContextEE at Qt_5_PRIVATE_API 5.5.0 1
  _ZN3QV44Heap6String6appendEPKS1_P5QChar at Qt_5_PRIVATE_API 5.5.0 1
diff --git a/debian/libqt5quick5.symbols b/debian/libqt5quick5.symbols
index 25f2660..88bdc1c 100644
--- a/debian/libqt5quick5.symbols
+++ b/debian/libqt5quick5.symbols
@@ -1433,7 +1433,6 @@ libQt5Quick.so.5 libqt5quick5 #MINVER#
  _ZN17QQuickItemPrivate11children_atEP16QQmlListPropertyI10QQuickItemEi at Qt_5_PRIVATE_API 5.0.2 1
  _ZN17QQuickItemPrivate11data_appendEP16QQmlListPropertyI7QObjectEPS1_ at Qt_5_PRIVATE_API 5.0.2 1
  _ZN17QQuickItemPrivate11derefWindowEv at Qt_5_PRIVATE_API 5.0.2 1
- _ZN17QQuickItemPrivate11markObjectsEPN3QV415ExecutionEngineE at Qt_5_PRIVATE_API 5.7.1~20161021 1
  _ZN17QQuickItemPrivate11removeChildEP10QQuickItem at Qt_5_PRIVATE_API 5.0.2 1
  _ZN17QQuickItemPrivate11transitionsEv at Qt_5_PRIVATE_API 5.0.2 1
  _ZN17QQuickItemPrivate12resources_atEP16QQmlListPropertyI7QObjectEi at Qt_5_PRIVATE_API 5.0.2 1
@@ -1458,6 +1457,7 @@ libQt5Quick.so.5 libqt5quick5 #MINVER#
  _ZN17QQuickItemPrivate16transform_appendEP16QQmlListPropertyI15QQuickTransformEPS1_ at Qt_5_PRIVATE_API 5.0.2 1
  _ZN17QQuickItemPrivate17canAcceptTabFocusEP10QQuickItem at Qt_5_PRIVATE_API 5.1.0 1
  _ZN17QQuickItemPrivate17refFromEffectItemEb at Qt_5_PRIVATE_API 5.0.2 1
+ _ZN17QQuickItemPrivate18_q_createJSWrapperEPN3QV415ExecutionEngineE at Qt_5_PRIVATE_API 5.7.1 1
  _ZN17QQuickItemPrivate18updateSubFocusItemEP10QQuickItemb at Qt_5_PRIVATE_API 5.0.2 1
  _ZN17QQuickItemPrivate18visibleChildren_atEP16QQmlListPropertyI10QQuickItemEi at Qt_5_PRIVATE_API 5.0.2 1
  _ZN17QQuickItemPrivate19createTransformNodeEv at Qt_5_PRIVATE_API 5.0.2 1
diff --git a/debian/patches/revert_c9ffed92.diff b/debian/patches/revert_c9ffed92.diff
deleted file mode 100644
index b558f61..0000000
--- a/debian/patches/revert_c9ffed92.diff
+++ /dev/null
@@ -1,421 +0,0 @@
-Description: revert upstream commit c9ffed92a0dee0ae which broke QtQuickControls
-Bug: https://bugs.debian.org/843250
-Author: Dmitry Shachnev <mitya57 at debian.org>
-Last-Update: 2016-11-06
-
---- a/src/qml/jsruntime/qv4qobjectwrapper.cpp
-+++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp
-@@ -674,14 +674,8 @@
- 
- ReturnedValue QObjectWrapper::create(ExecutionEngine *engine, QObject *object)
- {
--    if (QJSEngine *jsEngine = engine->jsEngine()) {
--        if (QQmlPropertyCache *cache = QQmlData::ensurePropertyCache(jsEngine, object)) {
--            ReturnedValue result = QV4::Encode::null();
--            void *args[] = { &result, &engine };
--            if (cache->callJSFactoryMethod(object, args))
--                return result;
--        }
--    }
-+    if (engine->jsEngine())
-+        QQmlData::ensurePropertyCache(engine->jsEngine(), object);
-     return (engine->memoryManager->allocObject<QV4::QObjectWrapper>(object))->asReturnedValue();
- }
- 
---- a/src/qml/jsruntime/qv4qobjectwrapper_p.h
-+++ b/src/qml/jsruntime/qv4qobjectwrapper_p.h
-@@ -77,7 +77,7 @@
- 
- struct QQmlValueTypeWrapper;
- 
--struct Q_QML_EXPORT QObjectWrapper : Object {
-+struct QObjectWrapper : Object {
-     QObjectWrapper(QObject *object);
-     QPointer<QObject> object;
- };
---- a/src/qml/qml/qqmldata_p.h
-+++ b/src/qml/qml/qqmldata_p.h
-@@ -223,7 +223,7 @@
- 
-     static inline void flushPendingBinding(QObject *, int coreIndex);
- 
--    static QQmlPropertyCache *ensurePropertyCache(QJSEngine *engine, QObject *object);
-+    static void ensurePropertyCache(QJSEngine *engine, QObject *object);
- 
- private:
-     // For attachedProperties
---- a/src/qml/qml/qqmlengine.cpp
-+++ b/src/qml/qml/qqmlengine.cpp
-@@ -1800,15 +1800,14 @@
-     QQmlData_setBit(this, obj, coreIndex * 2 + 1);
- }
- 
--QQmlPropertyCache *QQmlData::ensurePropertyCache(QJSEngine *engine, QObject *object)
-+void QQmlData::ensurePropertyCache(QJSEngine *engine, QObject *object)
- {
-     Q_ASSERT(engine);
-     QQmlData *ddata = QQmlData::get(object, /*create*/true);
--    if (!ddata->propertyCache){
--        ddata->propertyCache = QJSEnginePrivate::get(engine)->cache(object);
--        if (ddata->propertyCache) ddata->propertyCache->addref();
--    }
--    return ddata->propertyCache;
-+    if (ddata->propertyCache)
-+        return;
-+    ddata->propertyCache = QJSEnginePrivate::get(engine)->cache(object);
-+    if (ddata->propertyCache) ddata->propertyCache->addref();
- }
- 
- void QQmlEnginePrivate::sendQuit()
---- a/src/qml/qml/qqmlpropertycache.cpp
-+++ b/src/qml/qml/qqmlpropertycache.cpp
-@@ -240,7 +240,7 @@
- QQmlPropertyCache::QQmlPropertyCache(QV4::ExecutionEngine *e)
-     : engine(e), _parent(0), propertyIndexCacheStart(0), methodIndexCacheStart(0),
-       signalHandlerIndexCacheStart(0), _hasPropertyOverrides(false), _ownMetaObject(false),
--      _metaObject(0), argumentsCache(0), _jsFactoryMethodIndex(-1)
-+      _metaObject(0), argumentsCache(0)
- {
-     Q_ASSERT(engine);
- }
-@@ -251,7 +251,7 @@
- QQmlPropertyCache::QQmlPropertyCache(QV4::ExecutionEngine *e, const QMetaObject *metaObject)
-     : engine(e), _parent(0), propertyIndexCacheStart(0), methodIndexCacheStart(0),
-       signalHandlerIndexCacheStart(0), _hasPropertyOverrides(false), _ownMetaObject(false),
--      _metaObject(0), argumentsCache(0), _jsFactoryMethodIndex(-1)
-+      _metaObject(0), argumentsCache(0)
- {
-     Q_ASSERT(engine);
-     Q_ASSERT(metaObject);
-@@ -524,16 +524,10 @@
-         for (int ii = 0; ii < classInfoCount; ++ii) {
-             int idx = ii + classInfoOffset;
- 
--            const char * const classInfoName = metaObject->classInfo(idx).name();
--            if (0 == qstrcmp(classInfoName, "qt_HasQmlAccessors")) {
-+            if (0 == qstrcmp(metaObject->classInfo(idx).name(), "qt_HasQmlAccessors")) {
-                 hasFastProperty = true;
--            } else if (0 == qstrcmp(classInfoName, "DefaultProperty")) {
-+            } else if (0 == qstrcmp(metaObject->classInfo(idx).name(), "DefaultProperty")) {
-                 _defaultPropertyName = QString::fromUtf8(metaObject->classInfo(idx).value());
--            } else if (0 == qstrcmp(classInfoName, "qt_QmlJSWrapperFactoryMethod")) {
--                const char * const factoryMethod = metaObject->classInfo(idx).value();
--                _jsFactoryMethodIndex = metaObject->indexOfSlot(factoryMethod);
--                if (_jsFactoryMethodIndex != -1)
--                    _jsFactoryMethodIndex -= metaObject->methodOffset();
-             }
-         }
- 
---- a/src/qml/qml/qqmlpropertycache_p.h
-+++ b/src/qml/qml/qqmlpropertycache_p.h
-@@ -80,8 +80,6 @@
- class QQmlPropertyRawData
- {
- public:
--    typedef QObjectPrivate::StaticMetaCallFunction StaticMetaCallFunction;
--
-     enum Flag {
-         NoFlags           = 0x00000000,
-         ValueTypeFlagMask = 0x0000FFFF, // Flags in valueTypeFlags must fit in this mask
-@@ -328,8 +326,6 @@
- 
-     void toMetaObjectBuilder(QMetaObjectBuilder &);
- 
--    inline bool callJSFactoryMethod(QObject *object, void **args) const;
--
- protected:
-     virtual void destroy();
-     virtual void clear();
-@@ -398,7 +394,6 @@
-     QByteArray _dynamicStringData;
-     QString _defaultPropertyName;
-     QQmlPropertyCacheMethodArguments *argumentsCache;
--    int _jsFactoryMethodIndex;
- };
- 
- // QQmlMetaObject serves as a wrapper around either QMetaObject or QQmlPropertyCache.
-@@ -567,17 +562,6 @@
-     return signalHandlerIndexCacheStart;
- }
- 
--bool QQmlPropertyCache::callJSFactoryMethod(QObject *object, void **args) const
--{
--    if (_jsFactoryMethodIndex != -1) {
--        _metaObject->d.static_metacall(object, QMetaObject::InvokeMetaMethod, _jsFactoryMethodIndex, args);
--        return true;
--    }
--    if (_parent)
--        return _parent->callJSFactoryMethod(object, args);
--    return false;
--}
--
- QQmlMetaObject::QQmlMetaObject()
- {
- }
---- a/src/quick/items/qquickitem.cpp
-+++ b/src/quick/items/qquickitem.cpp
-@@ -7067,6 +7067,15 @@
- #endif
- }
- 
-+void QQuickItemPrivate::markObjects(QV4::ExecutionEngine *e)
-+{
-+    Q_Q(QQuickItem);
-+    QV4::QObjectWrapper::markWrapper(q, e);
-+
-+    foreach (QQuickItem *child, childItems)
-+        QQuickItemPrivate::get(child)->markObjects(e);
-+}
-+
- #ifndef QT_NO_CURSOR
- 
- /*!
-@@ -8247,38 +8256,6 @@
- }
- #endif
- 
--// helper code to let a visual parent mark its visual children for the garbage collector
--
--namespace QV4 {
--namespace Heap {
--struct QQuickItemWrapper : public QObjectWrapper {
--    QQuickItemWrapper(QQuickItem *item) : QObjectWrapper(item) {}
--};
--}
--}
--
--struct QQuickItemWrapper : public QV4::QObjectWrapper {
--    V4_OBJECT2(QQuickItemWrapper, QV4::QObjectWrapper)
--    static void markObjects(QV4::Heap::Base *that, QV4::ExecutionEngine *e);
--};
--
--DEFINE_OBJECT_VTABLE(QQuickItemWrapper);
--
--void QQuickItemWrapper::markObjects(QV4::Heap::Base *that, QV4::ExecutionEngine *e)
--{
--    QObjectWrapper::Data *This = static_cast<QObjectWrapper::Data *>(that);
--    if (QQuickItem *item = static_cast<QQuickItem*>(This->object.data())) {
--        foreach (QQuickItem *child, QQuickItemPrivate::get(item)->childItems)
--            QV4::QObjectWrapper::markWrapper(child, e);
--    }
--    QV4::QObjectWrapper::markObjects(that, e);
--}
--
--quint64 QQuickItemPrivate::_q_createJSWrapper(QV4::ExecutionEngine *engine)
--{
--    return (engine->memoryManager->allocObject<QQuickItemWrapper>(q_func()))->asReturnedValue();
--}
--
- QT_END_NAMESPACE
- 
- #include <moc_qquickitem.cpp>
---- a/src/quick/items/qquickitem.h
-+++ b/src/quick/items/qquickitem.h
-@@ -149,7 +149,6 @@
- 
-     Q_CLASSINFO("DefaultProperty", "data")
-     Q_CLASSINFO("qt_HasQmlAccessors", "true")
--    Q_CLASSINFO("qt_QmlJSWrapperFactoryMethod", "_q_createJSWrapper(QV4::ExecutionEngine*)")
- 
- public:
-     enum Flag {
-@@ -445,7 +444,6 @@
- 
- private:
-     Q_PRIVATE_SLOT(d_func(), void _q_resourceObjectDeleted(QObject *))
--    Q_PRIVATE_SLOT(d_func(), quint64 _q_createJSWrapper(QV4::ExecutionEngine *))
- 
-     friend class QQuickWindow;
-     friend class QQuickWindowPrivate;
---- a/src/quick/items/qquickitem_p.h
-+++ b/src/quick/items/qquickitem_p.h
-@@ -302,7 +302,6 @@
- 
-     void _q_resourceObjectDeleted(QObject *);
-     void _q_windowChanged(QQuickWindow *w);
--    quint64 _q_createJSWrapper(QV4::ExecutionEngine *engine);
- 
-     enum ChangeType {
-         Geometry = 0x01,
-@@ -606,6 +605,9 @@
-     virtual void mirrorChange() {}
- 
-     void setHasCursorInChild(bool hasCursor);
-+
-+    // recursive helper to let a visual parent mark its visual children
-+    void markObjects(QV4::ExecutionEngine *e);
- };
- 
- /*
---- a/src/quick/items/qquickview.cpp
-+++ b/src/quick/items/qquickview.cpp
-@@ -56,6 +56,25 @@
- 
- QT_BEGIN_NAMESPACE
- 
-+DEFINE_OBJECT_VTABLE(QV4::QQuickRootItemMarker);
-+
-+QV4::Heap::QQuickRootItemMarker *QV4::QQuickRootItemMarker::create(QQmlEngine *engine, QQuickWindow *window)
-+{
-+    QV4::ExecutionEngine *e = QQmlEnginePrivate::getV4Engine(engine);
-+    return e->memoryManager->allocObject<QQuickRootItemMarker>(window);
-+}
-+
-+void QV4::QQuickRootItemMarker::markObjects(QV4::Heap::Base *that, QV4::ExecutionEngine *e)
-+{
-+    QQuickItem *root = static_cast<QQuickRootItemMarker::Data *>(that)->window->contentItem();
-+    if (root) {
-+        QQuickItemPrivate *rootPrivate = QQuickItemPrivate::get(root);
-+        rootPrivate->markObjects(e);
-+    }
-+
-+    QV4::Object::markObjects(that, e);
-+}
-+
- void QQuickViewPrivate::init(QQmlEngine* e)
- {
-     Q_Q(QQuickView);
-@@ -69,10 +88,10 @@
-         engine.data()->setIncubationController(q->incubationController());
- 
-     {
--        // The content item has CppOwnership policy (set in QQuickWindow). Ensure the presence of a JS
--        // wrapper so that the garbage collector can see the policy.
-         QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine.data());
--        QV4::QObjectWrapper::wrap(v4, contentItem);
-+        QV4::Scope scope(v4);
-+        QV4::Scoped<QV4::QQuickRootItemMarker> v(scope, QV4::QQuickRootItemMarker::create(engine.data(), q));
-+        rootItemMarker.set(v4, v);
-     }
- }
- 
---- a/src/quick/items/qquickview_p.h
-+++ b/src/quick/items/qquickview_p.h
-@@ -108,8 +108,37 @@
-     QQuickView::ResizeMode resizeMode;
-     QSize initialSize;
-     QElapsedTimer frameTimer;
-+    QV4::PersistentValue rootItemMarker;
- };
- 
-+namespace QV4 {
-+namespace Heap {
-+
-+struct QQuickRootItemMarker : Object {
-+    inline QQuickRootItemMarker(QQuickWindow *window)
-+        : window(window)
-+    {
-+    }
-+
-+    QQuickWindow *window;
-+};
-+
-+}
-+
-+struct QQuickRootItemMarker : public Object
-+{
-+    V4_OBJECT2(QQuickRootItemMarker, Object)
-+
-+    static Heap::QQuickRootItemMarker *create(QQmlEngine *engine, QQuickWindow *window);
-+
-+    static void markObjects(QV4::Heap::Base *that, QV4::ExecutionEngine *e);
-+
-+};
-+
-+
-+
-+}
-+
- QT_END_NAMESPACE
- 
- #endif // QQUICKVIEW_P_H
---- a/src/quick/items/qquickwindowmodule.cpp
-+++ b/src/quick/items/qquickwindowmodule.cpp
-@@ -105,11 +105,12 @@
-         if (e && !e->incubationController())
-             e->setIncubationController(incubationController());
-     }
-+    Q_ASSERT(e);
-     {
--        // The content item has CppOwnership policy (set in QQuickWindow). Ensure the presence of a JS
--        // wrapper so that the garbage collector can see the policy.
-         QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(e);
--        QV4::QObjectWrapper::wrap(v4, d->contentItem);
-+        QV4::Scope scope(v4);
-+        QV4::ScopedObject v(scope, QV4::QQuickRootItemMarker::create(e, this));
-+        d->rootItemMarker = v;
-     }
- }
- 
---- a/tests/auto/quick/qquickitem/tst_qquickitem.cpp
-+++ b/tests/auto/quick/qquickitem/tst_qquickitem.cpp
-@@ -1771,56 +1771,56 @@
- 
- void tst_qquickitem::visualParentOwnership()
- {
--    QQmlEngine engine;
--    QQmlComponent component(&engine, testFileUrl("visualParentOwnership.qml"));
-+    QQuickView view;
-+    view.setSource(testFileUrl("visualParentOwnership.qml"));
- 
--    QScopedPointer<QQuickItem> root(qobject_cast<QQuickItem*>(component.create()));
-+    QQuickItem *root = qobject_cast<QQuickItem*>(view.rootObject());
-     QVERIFY(root);
- 
-     QVariant newObject;
-     {
--        QVERIFY(QMetaObject::invokeMethod(root.data(), "createItemWithoutParent", Q_RETURN_ARG(QVariant, newObject)));
-+        QVERIFY(QMetaObject::invokeMethod(root, "createItemWithoutParent", Q_RETURN_ARG(QVariant, newObject)));
-         QPointer<QQuickItem> newItem = qvariant_cast<QQuickItem*>(newObject);
-         QVERIFY(!newItem.isNull());
- 
-         QVERIFY(!newItem->parent());
-         QVERIFY(!newItem->parentItem());
- 
--        newItem->setParentItem(root.data());
-+        newItem->setParentItem(root);
- 
--        gc(engine);
-+        gc(*view.engine());
- 
-         QVERIFY(!newItem.isNull());
-         newItem->setParentItem(0);
- 
--        gc(engine);
-+        gc(*view.engine());
-         QVERIFY(newItem.isNull());
-     }
-     {
--        QVERIFY(QMetaObject::invokeMethod(root.data(), "createItemWithoutParent", Q_RETURN_ARG(QVariant, newObject)));
-+        QVERIFY(QMetaObject::invokeMethod(root, "createItemWithoutParent", Q_RETURN_ARG(QVariant, newObject)));
-         QPointer<QQuickItem> firstItem = qvariant_cast<QQuickItem*>(newObject);
-         QVERIFY(!firstItem.isNull());
- 
--        firstItem->setParentItem(root.data());
-+        firstItem->setParentItem(root);
- 
--        QVERIFY(QMetaObject::invokeMethod(root.data(), "createItemWithoutParent", Q_RETURN_ARG(QVariant, newObject)));
-+        QVERIFY(QMetaObject::invokeMethod(root, "createItemWithoutParent", Q_RETURN_ARG(QVariant, newObject)));
-         QPointer<QQuickItem> secondItem = qvariant_cast<QQuickItem*>(newObject);
-         QVERIFY(!firstItem.isNull());
- 
-         secondItem->setParentItem(firstItem);
- 
--        gc(engine);
-+        gc(*view.engine());
- 
-         delete firstItem;
- 
-         root->setProperty("keepAliveProperty", newObject);
- 
--        gc(engine);
-+        gc(*view.engine());
-         QVERIFY(!secondItem.isNull());
- 
-         root->setProperty("keepAliveProperty", QVariant());
- 
--        gc(engine);
-+        gc(*view.engine());
-         QVERIFY(secondItem.isNull());
-     }
- }
diff --git a/debian/patches/series b/debian/patches/series
index 0ec9bcb..67c2b27 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,4 +5,3 @@ fix_tags_types.diff
 # Debian patches
 disableopengltests.patch
 fix_test_remove_qlibraryinfo.patch
-revert_c9ffed92.diff

-- 
qtdeclarative packaging



More information about the pkg-kde-commits mailing list