aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlprivate.h
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-01-07 16:07:00 +0100
committerUlf Hermann <ulf.hermann@qt.io>2021-01-11 22:59:34 +0100
commit9694e0631da9ae94dab4229091f382528700af90 (patch)
treebd2462d87e497829310df0bf6e2b18e5ea5161cb /src/qml/qml/qqmlprivate.h
parent05b5a0896da2c12d50898abb2bf3dc5c5f158a16 (diff)
Pass a more comprehensive context to AOT-compiled functions
We need the compilation unit, and a way to retrieve JavaScript metatypes from it. Also, prepare for cases where we only have a QJSEngine, not a QQmlEngine, and pass the scope object as part of the AOT context. Change-Id: Ica81e92c99f3c9b6baffd04db1e0e91603fd2ac7 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlprivate.h')
-rw-r--r--src/qml/qml/qqmlprivate.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlprivate.h b/src/qml/qml/qqmlprivate.h
index a2cd9452ac..ce83b33eaa 100644
--- a/src/qml/qml/qqmlprivate.h
+++ b/src/qml/qml/qqmlprivate.h
@@ -589,12 +589,20 @@ namespace QQmlPrivate
QVector<int> *qmlTypeIds;
};
+ struct AOTCompiledContext {
+ QQmlContext *qmlContext;
+ QObject *qmlScopeObject;
+ QJSEngine *engine;
+ QV4::CompiledData::CompilationUnit *compilationUnit;
+
+ QJSValue Q_QML_EXPORT jsMetaType(int index) const;
+ };
+
struct AOTCompiledFunction {
int index;
QMetaType returnType;
QList<QMetaType> argumentTypes;
- void (*functionPtr)(QQmlContext *context, QObject *scopeObject, void *resultPtr,
- void **arguments);
+ void (*functionPtr)(const AOTCompiledContext *context, void *resultPtr, void **arguments);
};
struct CachedQmlUnit {