aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2020-06-02 16:28:31 +0200
committerFabian Kosmale <fabian.kosmale@qt.io>2020-06-12 08:21:24 +0200
commit185d9b5b72a2c062c4670b17385ec1e6e576c4d9 (patch)
tree726b09832249e1ea5465a64800e7d9b9db416615
parent889de12ad83373ffb1eb99604e4bd8d1bd3a7ea4 (diff)
Adapt to metaobject changes
Change-Id: I31dd544e80b8b2f8745463450a05fa7effafa8cd Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
-rw-r--r--src/qml/qml/qqmlmetaobject.cpp5
-rw-r--r--src/qml/qml/qqmlpropertycache.cpp36
-rw-r--r--src/qml/qml/qqmltype.cpp15
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