From 831ddc54932d2681712ca9fa3e94484ae11d59f7 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 24 Oct 2017 14:57:53 +0200 Subject: Cut out one more C++ layer when doing JS function calls Change-Id: I0e2ac30b7e6d77fe41deb84a97b0a7f220437c6a Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4vme_moth_p.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/qml/jsruntime/qv4vme_moth_p.h') diff --git a/src/qml/jsruntime/qv4vme_moth_p.h b/src/qml/jsruntime/qv4vme_moth_p.h index 3a1e7b6637..dbf9ed3550 100644 --- a/src/qml/jsruntime/qv4vme_moth_p.h +++ b/src/qml/jsruntime/qv4vme_moth_p.h @@ -52,8 +52,6 @@ // #include -#include -#include QT_REQUIRE_CONFIG(qml_interpreter); @@ -65,7 +63,17 @@ namespace Moth { class VME { public: - static QV4::ReturnedValue exec(CallData *callData, QV4::Function *); + struct ExecData { + QV4::Function *function; + const QV4::ExecutionContext *scope; + }; + static inline + QV4::ReturnedValue exec(Function *v4Function, const Value *thisObject, const Value *argv, int argc, const ExecutionContext *context) { + ExecData data{v4Function, context}; + quintptr d = reinterpret_cast(&data) | 0x1; + return exec(reinterpret_cast(d), thisObject, argv, argc); + } + static QV4::ReturnedValue exec(const FunctionObject *fo, const Value *thisObject, const Value *argv, int argc); }; } // namespace Moth -- cgit v1.2.3