diff options
author | Lars Knoll <lars.knoll@qt.io> | 2016-12-05 14:23:09 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2016-12-09 14:02:20 +0000 |
commit | a11be5881a38933d36facfbc4f8baa1becd22546 (patch) | |
tree | 15b541a397030862678c7a3ea7abad83603182ef /src/qml/qml/v8/qqmlbuiltinfunctions.cpp | |
parent | ef90db10a8c943d4684a98035465e92327513130 (diff) |
Directly store the referenced QV4::Function pointer in the binding function
There's no need to store a pointer to the original function here, we
can simplify the code when storing the pointer to the QV4::Function
directly.
Change-Id: I377aaecf56a0118606713c26cc7da4da001766b1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/qml/v8/qqmlbuiltinfunctions.cpp')
-rw-r--r-- | src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index aa2b8a24ec..19dc100f40 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -1303,8 +1303,9 @@ ReturnedValue QtObject::method_locale(CallContext *ctx) void Heap::QQmlBindingFunction::init(const QV4::FunctionObject *originalFunction) { - QV4::Heap::FunctionObject::init(originalFunction->scope(), originalFunction->name()); - this->originalFunction = originalFunction->d(); + Scope scope(originalFunction->engine()); + ScopedContext context(scope, originalFunction->scope()); + FunctionObject::init(context, originalFunction->function()); } QQmlSourceLocation QQmlBindingFunction::currentLocation() const @@ -1313,20 +1314,6 @@ QQmlSourceLocation QQmlBindingFunction::currentLocation() const return QQmlSourceLocation(frame.source, frame.line, 0); } -void QQmlBindingFunction::call(const Managed *that, Scope &scope, CallData *callData) -{ - ScopedFunctionObject function(scope, static_cast<const QQmlBindingFunction*>(that)->d()->originalFunction); - function->call(scope, callData); -} - -void QQmlBindingFunction::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - QQmlBindingFunction::Data *This = static_cast<QQmlBindingFunction::Data *>(that); - if (This->originalFunction) - This->originalFunction->mark(e); - QV4::FunctionObject::markObjects(that, e); -} - DEFINE_OBJECT_VTABLE(QQmlBindingFunction); /*! |