diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-11-14 10:30:02 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2019-11-18 10:37:59 +0100 |
commit | 9b2af0c5f581797e0098494efa93365a2dc6d0bf (patch) | |
tree | 05150d0c0dc8fbf9da70a7aa2416fc1b97c2e2f9 /src/qml/qml/qqmltype.cpp | |
parent | c5675c9c8f549beb9966644277010eb847c72bcd (diff) |
Retrieve the attached properties base type without recursion
This is probably faster and avoids the deprecation warnings stemming
from deprecated functions calling themselves recursively.
Task-number: QTBUG-80040
Change-Id: I2f65aad3bc7f85b7a7de66d3e76dac1233a58db8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/qml/qqmltype.cpp')
-rw-r--r-- | src/qml/qml/qqmltype.cpp | 36 |
1 files changed, 9 insertions, 27 deletions
diff --git a/src/qml/qml/qqmltype.cpp b/src/qml/qml/qqmltype.cpp index 874bcd4bca..4a211ffa53 100644 --- a/src/qml/qml/qqmltype.cpp +++ b/src/qml/qml/qqmltype.cpp @@ -618,28 +618,16 @@ int QQmlType::metaObjectRevision() const QQmlAttachedPropertiesFunc QQmlType::attachedPropertiesFunction(QQmlEnginePrivate *engine) const { - if (!d) - return nullptr; - if (d->regType == CppType) - return d->extraData.cd->attachedPropertiesFunc; - - QQmlType base; - if (d->regType == CompositeType) - base = d->resolveCompositeBaseType(engine); - return base.attachedPropertiesFunction(engine); + if (const QQmlTypePrivate *base = d->attachedPropertiesBase(engine)) + return base->extraData.cd->attachedPropertiesFunc; + return nullptr; } const QMetaObject *QQmlType::attachedPropertiesType(QQmlEnginePrivate *engine) const { - if (!d) - return nullptr; - if (d->regType == CppType) - return d->extraData.cd->attachedPropertiesType; - - QQmlType base; - if (d->regType == CompositeType) - base = d->resolveCompositeBaseType(engine); - return base.attachedPropertiesType(engine); + if (const QQmlTypePrivate *base = d->attachedPropertiesBase(engine)) + return base->extraData.cd->attachedPropertiesType; + return nullptr; } #if QT_DEPRECATED_SINCE(5, 14) @@ -650,15 +638,9 @@ Qt 4.7 and QtQuick 1.0). */ int QQmlType::attachedPropertiesId(QQmlEnginePrivate *engine) const { - if (!d) - return -1; - if (d->regType == CppType) - return d->extraData.cd->attachedPropertiesType ? d->index : -1; - - QQmlType base; - if (d->regType == CompositeType) - base = d->resolveCompositeBaseType(engine); - return base.attachedPropertiesId(engine); + if (const QQmlTypePrivate *base = d->attachedPropertiesBase(engine)) + return base->index; + return -1; } #endif |