aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmltypewrapper_p.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2019-05-20 16:09:13 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2019-05-21 12:42:45 +0200
commit2f4479857d2b68f8cd3267b2f2b3c652ada431ed (patch)
tree588c84d73801025dcc878bc5b51e04a66f1d1c19 /src/qml/qml/qqmltypewrapper_p.h
parentc61a75cd6a4a9cd7b3594b205fcac8fc1208d493 (diff)
Fix lookups of properties in QML singletons
An unqualified name that points to a QML singleton will evaluate to a QQmlTypeWrapper JS object. A member lookup in such an object is not guaranteed to always produce the same property. The property cache check may protect us from that, but we must still retrieve the QObject singleton for every lookup. Task-number: QTBUG-75896 Change-Id: Ibd9bac6e5c2047f838758811790b299ace636446 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/qml/qqmltypewrapper_p.h')
-rw-r--r--src/qml/qml/qqmltypewrapper_p.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/qml/qml/qqmltypewrapper_p.h b/src/qml/qml/qqmltypewrapper_p.h
index 44e82dec2b..5f3cb2523f 100644
--- a/src/qml/qml/qqmltypewrapper_p.h
+++ b/src/qml/qml/qqmltypewrapper_p.h
@@ -114,6 +114,8 @@ struct Q_QML_EXPORT QQmlTypeWrapper : Object
static ReturnedValue virtualResolveLookupGetter(const Object *object, ExecutionEngine *engine, Lookup *lookup);
static bool virtualResolveLookupSetter(Object *object, ExecutionEngine *engine, Lookup *lookup, const Value &value);
+ static ReturnedValue lookupSingletonProperty(Lookup *l, ExecutionEngine *engine, const Value &base);
+
protected:
static ReturnedValue virtualGet(const Managed *m, PropertyKey id, const Value *receiver, bool *hasProperty);
static bool virtualPut(Managed *m, PropertyKey id, const Value &value, Value *receiver);