diff options
author | Lars Knoll <[email protected]> | 2013-09-24 12:13:42 +0200 |
---|---|---|
committer | The Qt Project <[email protected]> | 2013-09-26 09:05:19 +0200 |
commit | a57085f00b146798a0cca0d52dfa127232c3e659 (patch) | |
tree | 7b4df3f155d431aeb6f3aae01943a3411c812a7b /src/quick | |
parent | 12fd2ccd3fa2dc0133b5a3fb89f9fdf5cf721232 (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.h | 2 | ||||
-rw-r--r-- | src/quick/items/context2d/qquickcanvasitem.cpp | 6 | ||||
-rw-r--r-- | src/quick/items/context2d/qquickcontext2d.cpp | 4 | ||||
-rw-r--r-- | src/quick/items/context2d/qquickcontext2d_p.h | 2 | ||||
-rw-r--r-- | src/quick/util/qquickglobal.cpp | 24 |
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; } |