diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-04-23 16:19:35 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2021-04-30 17:54:10 +0200 |
commit | 2b49615db4381fa7c54b1ebbc9875d214ad292aa (patch) | |
tree | b79a86598e02af8a497e8e05446291d4769b8e5b /src/qml/qml/qqmlvaluetypewrapper.cpp | |
parent | 499fcb5d399321c3d887ead8f5a5b8696841a7f9 (diff) |
Redesign the AOT lookups
Each kind of lookup should come with a function that tries to execute
the lookup, taking a minimal number of parameters, and another one that
initializes the lookup, taking whatever is needed for that. No
initialization should be done in the execution step and vice versa.
Rather, the execution step should be repeated if an initialization had
to be done first.
This way, the happy path can be very fast if the lookups have been
initialized before.
Change-Id: Ic435b3dd4906d00144138cb05161a99a0a9c64ed
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlvaluetypewrapper.cpp')
-rw-r--r-- | src/qml/qml/qqmlvaluetypewrapper.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlvaluetypewrapper.cpp b/src/qml/qml/qqmlvaluetypewrapper.cpp index 9b2dda23e9..b3c073a3f0 100644 --- a/src/qml/qml/qqmlvaluetypewrapper.cpp +++ b/src/qml/qml/qqmlvaluetypewrapper.cpp @@ -563,6 +563,12 @@ ReturnedValue QQmlValueTypeWrapper::lookupGetter(Lookup *lookup, ExecutionEngine return getGadgetProperty(engine, valueTypeWrapper, QMetaType(lookup->qgadgetLookup.metaType), lookup->qgadgetLookup.coreIndex, lookup->qgadgetLookup.isFunction, lookup->qgadgetLookup.isEnum); } +bool QQmlValueTypeWrapper::lookupSetter( + Lookup *l, ExecutionEngine *engine, Value &object, const Value &value) +{ + return QV4::Lookup::setterFallback(l, engine, object, value); +} + bool QQmlValueTypeWrapper::virtualResolveLookupSetter(Object *object, ExecutionEngine *engine, Lookup *lookup, const Value &value) { |