diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-09-24 12:13:42 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-26 09:05:19 +0200 |
commit | a57085f00b146798a0cca0d52dfa127232c3e659 (patch) | |
tree | 7b4df3f155d431aeb6f3aae01943a3411c812a7b /src/quick/util/qquickglobal.cpp | |
parent | 12fd2ccd3fa2dc0133b5a3fb89f9fdf5cf721232 (diff) |
Fix API of QQmlV4Handle
Change-Id: Iac4a3fefebd33a5990408598486231a5add8e639
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/quick/util/qquickglobal.cpp')
-rw-r--r-- | src/quick/util/qquickglobal.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
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; } |