diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2020-06-02 16:28:31 +0200 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2020-06-12 08:21:24 +0200 |
commit | 185d9b5b72a2c062c4670b17385ec1e6e576c4d9 (patch) | |
tree | 726b09832249e1ea5465a64800e7d9b9db416615 | |
parent | 889de12ad83373ffb1eb99604e4bd8d1bd3a7ea4 (diff) |
Adapt to metaobject changes
Change-Id: I31dd544e80b8b2f8745463450a05fa7effafa8cd
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
-rw-r--r-- | src/qml/qml/qqmlmetaobject.cpp | 5 | ||||
-rw-r--r-- | src/qml/qml/qqmlpropertycache.cpp | 36 | ||||
-rw-r--r-- | src/qml/qml/qqmltype.cpp | 15 |
3 files changed, 8 insertions, 48 deletions
diff --git a/src/qml/qml/qqmlmetaobject.cpp b/src/qml/qml/qqmlmetaobject.cpp index a87865fd81..98fe9dccc6 100644 --- a/src/qml/qml/qqmlmetaobject.cpp +++ b/src/qml/qml/qqmlmetaobject.cpp @@ -140,11 +140,6 @@ void QQmlMetaObject::resolveGadgetMethodOrPropertyIndex(QMetaObject::Call type, case QMetaObject::ReadProperty: case QMetaObject::WriteProperty: case QMetaObject::ResetProperty: - case QMetaObject::QueryPropertyDesignable: - case QMetaObject::QueryPropertyEditable: - case QMetaObject::QueryPropertyScriptable: - case QMetaObject::QueryPropertyStored: - case QMetaObject::QueryPropertyUser: offset = (*metaObject)->propertyOffset(); while (*index < offset) { *metaObject = (*metaObject)->superClass(); diff --git a/src/qml/qml/qqmlpropertycache.cpp b/src/qml/qml/qqmlpropertycache.cpp index 1646e8d9cc..5fef36e0df 100644 --- a/src/qml/qml/qqmlpropertycache.cpp +++ b/src/qml/qml/qqmlpropertycache.cpp @@ -1254,35 +1254,15 @@ template <typename StringVisitor, typename TypeInfoVisitor> int visitProperties(const QMetaObject &mo, StringVisitor visitString, TypeInfoVisitor visitTypeInfo) { const QMetaObjectPrivate *const priv = reinterpret_cast<const QMetaObjectPrivate*>(mo.d.data); - const int intsPerProperty = 3; - - bool hasRevisionedProperties = false; - bool hasNotifySignals = false; for (int i = 0; i < priv->propertyCount; ++i) { - const int handle = priv->propertyData + i * intsPerProperty; - - const auto flags = mo.d.data[handle + 2]; - if (flags & Revisioned) { - hasRevisionedProperties = true; - } - if (flags & Notify) - hasNotifySignals = true; + const int handle = priv->propertyData + i * QMetaObjectPrivate::IntsPerProperty; visitString(mo.d.data[handle]); // name visitTypeInfo(mo.d.data[handle + 1]); } - int fieldsForPropertyRevisions = 0; - if (hasRevisionedProperties) - fieldsForPropertyRevisions = priv->propertyCount; - - int fieldsForNotifySignals = 0; - if (hasNotifySignals) - fieldsForNotifySignals = priv->propertyCount; - - return priv->propertyCount * intsPerProperty + fieldsForPropertyRevisions - + fieldsForNotifySignals; + return priv->propertyCount * QMetaObjectPrivate::IntsPerProperty; } template <typename StringVisitor> @@ -1305,21 +1285,19 @@ template <typename StringVisitor> int visitEnumerations(const QMetaObject &mo, StringVisitor visitString) { const QMetaObjectPrivate *const priv = reinterpret_cast<const QMetaObjectPrivate*>(mo.d.data); - const int intsPerEnumerator = priv->revision >= 8 ? 5 : 4; - int fieldCount = priv->enumeratorCount * intsPerEnumerator; + int fieldCount = priv->enumeratorCount * QMetaObjectPrivate::IntsPerEnum; for (int i = 0; i < priv->enumeratorCount; ++i) { - const uint *enumeratorData = mo.d.data + priv->enumeratorData + i * intsPerEnumerator; + const uint *enumeratorData = mo.d.data + priv->enumeratorData + i * QMetaObjectPrivate::IntsPerEnum; - const uint keyCount = enumeratorData[intsPerEnumerator == 5 ? 3 : 2]; + const uint keyCount = enumeratorData[3]; fieldCount += keyCount * 2; visitString(enumeratorData[0]); // name - if (intsPerEnumerator == 5) - visitString(enumeratorData[1]); // enum name + visitString(enumeratorData[1]); // enum name - const uint keyOffset = enumeratorData[intsPerEnumerator == 5 ? 4 : 3]; + const uint keyOffset = enumeratorData[4]; for (uint j = 0; j < keyCount; ++j) { visitString(mo.d.data[keyOffset + 2 * j]); diff --git a/src/qml/qml/qqmltype.cpp b/src/qml/qml/qqmltype.cpp index ffb1e0ac4c..5ae87c429d 100644 --- a/src/qml/qml/qqmltype.cpp +++ b/src/qml/qml/qqmltype.cpp @@ -189,20 +189,7 @@ QQmlPropertyCache *QQmlTypePrivate::compositePropertyCache(QQmlEnginePrivate *en static bool isPropertyRevisioned(const QMetaObject *mo, int index) { - int i = index; - i -= mo->propertyOffset(); - if (i < 0 && mo->d.superdata) - return isPropertyRevisioned(mo->d.superdata, index); - - const QMetaObjectPrivate *mop = reinterpret_cast<const QMetaObjectPrivate*>(mo->d.data); - if (i >= 0 && i < mop->propertyCount) { - int handle = mop->propertyData + 3*i; - int flags = mo->d.data[handle + 2]; - - return (flags & Revisioned); - } - - return false; + return mo->property(index).revision(); } void QQmlTypePrivate::init() const |