aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorLars Knoll <[email protected]>2013-09-24 12:13:42 +0200
committerThe Qt Project <[email protected]>2013-09-26 09:05:19 +0200
commita57085f00b146798a0cca0d52dfa127232c3e659 (patch)
tree7b4df3f155d431aeb6f3aae01943a3411c812a7b /src/quick
parent12fd2ccd3fa2dc0133b5a3fb89f9fdf5cf721232 (diff)
Fix API of QQmlV4Handle
Change-Id: Iac4a3fefebd33a5990408598486231a5add8e639 Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/items/context2d/qquickcanvascontext_p.h2
-rw-r--r--src/quick/items/context2d/qquickcanvasitem.cpp6
-rw-r--r--src/quick/items/context2d/qquickcontext2d.cpp4
-rw-r--r--src/quick/items/context2d/qquickcontext2d_p.h2
-rw-r--r--src/quick/util/qquickglobal.cpp24
5 files changed, 21 insertions, 17 deletions
diff --git a/src/quick/items/context2d/qquickcanvascontext_p.h b/src/quick/items/context2d/qquickcanvascontext_p.h
index 2e3044008e..5c3359a2a9 100644
--- a/src/quick/items/context2d/qquickcanvascontext_p.h
+++ b/src/quick/items/context2d/qquickcanvascontext_p.h
@@ -69,7 +69,7 @@ public:
virtual void flush();
virtual void setV8Engine(QV8Engine *engine) = 0;
- virtual QV4::Value v4value() const = 0;
+ virtual QV4::ReturnedValue v4value() const = 0;
virtual QSGDynamicTexture *texture() const = 0;
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp
index 78369eb404..50a5431740 100644
--- a/src/quick/items/context2d/qquickcanvasitem.cpp
+++ b/src/quick/items/context2d/qquickcanvasitem.cpp
@@ -370,7 +370,7 @@ QQmlV4Handle QQuickCanvasItem::context() const
if (d->context)
return QQmlV4Handle(d->context->v4value());
- return QQmlV4Handle(QV4::Value::nullValue());
+ return QQmlV4Handle(QV4::Encode::null());
}
/*!
@@ -755,7 +755,7 @@ void QQuickCanvasItem::getContext(QQmlV4Function *args)
if (d->context != 0) {
if (d->context->contextNames().contains(contextId, Qt::CaseInsensitive)) {
- args->setReturnValue(d->context->v4value());
+ args->setReturnValue(QV4::Value::fromReturnedValue(d->context->v4value()));
return;
}
@@ -765,7 +765,7 @@ void QQuickCanvasItem::getContext(QQmlV4Function *args)
}
if (createContext(contextId))
- args->setReturnValue(d->context->v4value());
+ args->setReturnValue(QV4::Value::fromReturnedValue(d->context->v4value()));
else
args->setReturnValue(QV4::Value::nullValue());
}
diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp
index ea3bd77509..4b6f074354 100644
--- a/src/quick/items/context2d/qquickcontext2d.cpp
+++ b/src/quick/items/context2d/qquickcontext2d.cpp
@@ -4044,9 +4044,9 @@ QQuickContext2D::~QQuickContext2D()
m_texture->deleteLater();
}
-QV4::Value QQuickContext2D::v4value() const
+QV4::ReturnedValue QQuickContext2D::v4value() const
{
- return QV4::Value::fromReturnedValue(m_v4value.value());
+ return m_v4value.value();
}
QStringList QQuickContext2D::contextNames() const
diff --git a/src/quick/items/context2d/qquickcontext2d_p.h b/src/quick/items/context2d/qquickcontext2d_p.h
index 8164108bd3..0d5926a27f 100644
--- a/src/quick/items/context2d/qquickcontext2d_p.h
+++ b/src/quick/items/context2d/qquickcontext2d_p.h
@@ -175,7 +175,7 @@ public:
QSGDynamicTexture *texture() const;
QImage toImage(const QRectF& bounds);
- QV4::Value v4value() const;
+ QV4::ReturnedValue v4value() const;
void setV8Engine(QV8Engine *eng);
QQuickCanvasItem* canvas() const { return m_canvas; }
diff --git a/src/quick/util/qquickglobal.cpp b/src/quick/util/qquickglobal.cpp
index cf3d9acfa3..ea0b85c9ff 100644
--- a/src/quick/util/qquickglobal.cpp
+++ b/src/quick/util/qquickglobal.cpp
@@ -317,15 +317,15 @@ public:
if (ok) *ok = false;
QFont retn;
- QV4::Object *obj = object.toValue().asObject();
+ QV4::ExecutionEngine *v4 = QV8Engine::getV4(e);
+ QV4::Scope scope(v4);
+ QV4::ScopedObject obj(scope, object);
if (!obj) {
if (ok)
*ok = false;
return retn;
}
- QV4::ExecutionEngine *v4 = obj->engine();
- QV4::Scope scope(v4);
QV4::ScopedString s(scope);
QV4::Value vbold = QV4::Value::fromReturnedValue(obj->get((s = v4->newString(QStringLiteral("bold")))));
@@ -389,15 +389,15 @@ public:
return retn;
}
- static QMatrix4x4 matrix4x4FromObject(QQmlV4Handle object, bool *ok)
+ static QMatrix4x4 matrix4x4FromObject(QQmlV4Handle object, QV8Engine *e, bool *ok)
{
if (ok) *ok = false;
- QV4::ArrayObject *array = object.toValue().asArrayObject();
+ QV4::ExecutionEngine *v4 = QV8Engine::getV4(e);
+ QV4::Scope scope(v4);
+ QV4::ScopedArrayObject array(scope, object);
if (!array)
return QMatrix4x4();
- QV4::Scope scope(array->engine());
-
if (array->arrayLength() != 16)
return QMatrix4x4();
@@ -763,15 +763,19 @@ public:
bool variantFromJsObject(int type, QQmlV4Handle object, QV8Engine *e, QVariant *v)
{
- // must be called with a valid v8 context.
- Q_ASSERT(object.toValue().isObject());
+ QV4::ExecutionEngine *v4 = QV8Engine::getV4(e);
+ QV4::Scope scope(v4);
+#ifndef QT_NO_DEBUG
+ QV4::ScopedObject obj(scope, object);
+ Q_ASSERT(obj);
+#endif
bool ok = false;
switch (type) {
case QMetaType::QFont:
*v = QVariant::fromValue(fontFromObject(object, e, &ok));
break;
case QMetaType::QMatrix4x4:
- *v = QVariant::fromValue(matrix4x4FromObject(object, &ok));
+ *v = QVariant::fromValue(matrix4x4FromObject(object, e, &ok));
default: break;
}