diff options
Diffstat (limited to 'src/qml/jsruntime/qv4function_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4function_p.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4function_p.h b/src/qml/jsruntime/qv4function_p.h index 2c5de203b6..8f2a38416d 100644 --- a/src/qml/jsruntime/qv4function_p.h +++ b/src/qml/jsruntime/qv4function_p.h @@ -81,9 +81,10 @@ struct Q_QML_EXPORT FunctionData { Q_STATIC_ASSERT(std::is_standard_layout< FunctionData >::value); struct Q_QML_EXPORT Function : public FunctionData { -private: +protected: Function(ExecutionEngine *engine, ExecutableCompilationUnit *unit, const CompiledData::Function *function, const QQmlPrivate::AOTCompiledFunction *aotFunction); + Function(ExecutionEngine *engine, const QQmlPrivate::AOTCompiledFunction *aotFunction); ~Function(); public: @@ -122,8 +123,12 @@ public: static Function *create(ExecutionEngine *engine, ExecutableCompilationUnit *unit, const CompiledData::Function *function, const QQmlPrivate::AOTCompiledFunction *aotFunction); + static Function *create(ExecutionEngine *engine, + const QQmlPrivate::AOTCompiledFunction *aotFunction); void destroy(); + bool isSyntheticAotFunction() const { return codeData == nullptr && aotFunction != nullptr; } + // used when dynamically assigning signal handlers (QQmlConnection) void updateInternalClass(ExecutionEngine *engine, const QList<QByteArray> ¶meters); @@ -151,6 +156,18 @@ public: } }; +struct SyntheticAotFunction : public Function +{ + SyntheticAotFunction(ExecutionEngine *engine, QQmlPrivate::AOTCompiledFunction aotFunction) + : Function(engine, &m_aotFunction) + , m_aotFunction(std::move(aotFunction)) + { + } + +private: + QQmlPrivate::AOTCompiledFunction m_aotFunction; +}; + } QT_END_NAMESPACE |