Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Author: Fabian Kosmale <fabian.kosmale@qt.io>
- Date: Mon Feb 17 13:56:54 2020 +0100
- workaround
- diff --git src/qml/qml/qqmlvmemetaobject.cpp src/qml/qml/qqmlvmemetaobject.cpp
- index de23e929e2..715fb78257 100644
- --- src/qml/qml/qqmlvmemetaobject.cpp
- +++ src/qml/qml/qqmlvmemetaobject.cpp
- @@ -82,9 +82,10 @@ public:
- return;
- }
- - if (auto *md = static_cast<QV4::MemberData *>(
- - m_metaObject->propertyAndMethodStorage.asManaged())) {
- - const auto *v = (md->data() + m_id)->as<QV4::VariantObject>();
- + if (auto *md = m_metaObject->propertyAndMethodStorageAsMemberData()) {
- + if (md->d()->values.alloc <= m_id)
- + return;
- + const auto *v = md->d()->values[m_id].as<QV4::VariantObject>();//(md->data() + m_id)->as<QV4::
- Q_ASSERT(v);
- Q_ASSERT(v->d());
- QVariant &data = v->d()->data();
- @@ -115,23 +116,33 @@ private:
- static void list_append(QQmlListProperty<QObject> *prop, QObject *o)
- {
- const ResolvedList resolved(prop);
- + if (!resolved.list())
- + return;
- resolved.list()->append(o);
- resolved.activateSignal();
- }
- static int list_count(QQmlListProperty<QObject> *prop)
- {
- - return ResolvedList(prop).list()->count();
- + auto list = ResolvedList(prop).list();
- + if (!list)
- + return 0;
- + return list->count();
- }
- static QObject *list_at(QQmlListProperty<QObject> *prop, int index)
- {
- - return ResolvedList(prop).list()->at(index);
- + auto list = ResolvedList(prop).list();
- + if (!list)
- + return nullptr;
- + return list->at(index);
- }
- static void list_clear(QQmlListProperty<QObject> *prop)
- {
- const ResolvedList resolved(prop);
- + if (!resolved.list())
- + return;
- resolved.list()->clear();
- resolved.activateSignal();
- }
- @@ -139,6 +150,8 @@ static void list_clear(QQmlListProperty<QObject> *prop)
- static void list_replace(QQmlListProperty<QObject> *prop, int index, QObject *o)
- {
- const ResolvedList resolved(prop);
- + if (!resolved.list())
- + return;
- resolved.list()->replace(index, o);
- resolved.activateSignal();
- }
- @@ -146,6 +159,8 @@ static void list_replace(QQmlListProperty<QObject> *prop, int index, QObject *o)
- static void list_removeLast(QQmlListProperty<QObject> *prop)
- {
- const ResolvedList resolved(prop);
- + if (!resolved.list())
- + return;
- resolved.list()->removeLast();
- resolved.activateSignal();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement