[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