aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlbinding.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-05-24 13:26:38 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2013-05-24 13:58:56 +0200
commit0de6e8bb1bf0ca6e4d7992be15ed31f87514e48a (patch)
tree29e0e58b32607a5edb6c309dd53645d5af4b8ee9 /src/qml/qml/qqmlbinding.cpp
parent74632fa02a5bd8653c02a4d84a1bcb6b1d5a88f5 (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.cpp18
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)