diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2017-12-19 11:14:27 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2018-02-02 09:37:40 +0000 |
commit | 65606ea1559572d66ee8bfac77e87f3e8f447c3e (patch) | |
tree | ac129f9b750303c553bcf2021798ccdb9c24c48c /src/qml/qml/qqmlvmemetaobject.cpp | |
parent | 4939f4dd65ea28268656682ffa1378a9697fe5ac (diff) |
Remove double indirection between QJSEngine and QV4::ExecutionEngine
As QJSEngine's handle() method is internal, we can redefine it to return
a pointer to an ExecutionEngine. That makes many things easier.
Change-Id: Ie3df99e0bad5f00ad4fe73182896cd135fa82994
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlvmemetaobject.cpp')
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index 281d64ac79..73cb20dc7f 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -926,12 +926,14 @@ int QQmlVMEMetaObject::metaCall(QObject *o, QMetaObject::Call c, int _id, void * id -= plainSignals; if (id < methodCount) { - if (!ctxt->engine) + QQmlEngine *engine = ctxt->engine; + if (!engine) return -1; // We can't run the method - QQmlEnginePrivate *ep = QQmlEnginePrivate::get(ctxt->engine); + QQmlEnginePrivate *ep = QQmlEnginePrivate::get(engine); + QV4::ExecutionEngine *v4 = engine->handle(); ep->referenceScarceResources(); // "hold" scarce resources in memory during evaluation. - QV4::Scope scope(ep->v4engine()); + QV4::Scope scope(v4); QV4::ScopedFunctionObject function(scope, method(id)); @@ -951,7 +953,7 @@ int QQmlVMEMetaObject::metaCall(QObject *o, QMetaObject::Call c, int _id, void * const unsigned int parameterCount = function->formalParameterCount(); QV4::JSCallData jsCallData(scope, parameterCount); - *jsCallData->thisObject = ep->v8engine()->global(); + *jsCallData->thisObject = v4->global(); for (uint ii = 0; ii < parameterCount; ++ii) jsCallData->args[ii] = scope.engine->fromVariant(*(QVariant *)a[ii + 1]); |