diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-05-24 13:26:38 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2013-05-24 13:58:56 +0200 |
commit | 0de6e8bb1bf0ca6e4d7992be15ed31f87514e48a (patch) | |
tree | 29e0e58b32607a5edb6c309dd53645d5af4b8ee9 /src/qml/qml/qqmlbinding.cpp | |
parent | 74632fa02a5bd8653c02a4d84a1bcb6b1d5a88f5 (diff) |
Get rid of Get/SetHiddenValue in the v8 API
It was only used to mark an object as something to be used as a binding.
Simply use one of the free bits in QV4::Managed for that.
Also changed a bit more code over from v8 to v4.
Change-Id: I6e787e611041e058fe109df1d7a13598655f8eba
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlbinding.cpp')
-rw-r--r-- | src/qml/qml/qqmlbinding.cpp | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp index 209fac531d..32b20149e8 100644 --- a/src/qml/qml/qqmlbinding.cpp +++ b/src/qml/qml/qqmlbinding.cpp @@ -183,15 +183,7 @@ QQmlBinding::QQmlBinding(const QString &str, QObject *obj, v4function = qmlBinding(ctxt, obj, str, url, m_lineNumber); } -/*! - \internal - - To avoid exposing v8 in the public API, functionPtr must be a pointer to a v8::Handle<v8::Function>. - For example: - v8::Handle<v8::Function> function; - new QQmlBinding(&function, scope, ctxt); - */ -QQmlBinding::QQmlBinding(void *functionPtr, QObject *obj, QQmlContextData *ctxt, +QQmlBinding::QQmlBinding(const QV4::Value &functionPtr, QObject *obj, QQmlContextData *ctxt, const QString &url, quint16 lineNumber, quint16 columnNumber) : QQmlJavaScriptExpression(&QQmlBinding_jsvtable), QQmlAbstractBinding(Binding), m_url(url), m_lineNumber(lineNumber), m_columnNumber(columnNumber) @@ -200,7 +192,7 @@ QQmlBinding::QQmlBinding(void *functionPtr, QObject *obj, QQmlContextData *ctxt, QQmlAbstractExpression::setContext(ctxt); setScopeObject(obj); - v4function = (*(v8::Handle<v8::Function> *)functionPtr)->v4Value(); + v4function = functionPtr; } QQmlBinding::~QQmlBinding() @@ -261,7 +253,7 @@ void QQmlBinding::update(QQmlPropertyPrivate::WriteFlags flags) bool isUndefined = false; - v8::Handle<v8::Value> result = + QV4::Value result = QQmlJavaScriptExpression::evaluate(context(), v4function.value(), &isUndefined); trace.event("writing binding result"); @@ -302,12 +294,12 @@ QVariant QQmlBinding::evaluate() bool isUndefined = false; - v8::Handle<v8::Value> result = + QV4::Value result = QQmlJavaScriptExpression::evaluate(context(), v4function.value(), &isUndefined); ep->dereferenceScarceResources(); - return ep->v8engine()->toVariant(result->v4Value(), qMetaTypeId<QList<QObject*> >()); + return ep->v8engine()->toVariant(result, qMetaTypeId<QList<QObject*> >()); } QString QQmlBinding::expressionIdentifier(QQmlJavaScriptExpression *e) |