diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-10-10 16:17:28 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-11 08:56:26 +0200 |
commit | 40db24351b6a89a3fb30a4870afdf90a4b91663f (patch) | |
tree | 2fa70623d615cef347c4ad3f9e8422455abc4aa3 /src/qml/qml/v8/qv8engine.cpp | |
parent | b0e83cdc1a3a80ecc26cb31ac046b6c743238d41 (diff) |
Smaller cleanups
Change-Id: I0a7eee96ef7c92ad4a3c5963010e3ac66fe6ed3a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/v8/qv8engine.cpp')
-rw-r--r-- | src/qml/qml/v8/qv8engine.cpp | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp index 149896b545..4e8738b826 100644 --- a/src/qml/qml/v8/qv8engine.cpp +++ b/src/qml/qml/v8/qv8engine.cpp @@ -790,23 +790,30 @@ bool QV8Engine::metaTypeFromJS(const QV4::ValueRef value, int type, void *data) return true; } break; } - case QMetaType::QStringList: - if (QV4::ArrayObject *a = value->asArrayObject()) { + case QMetaType::QStringList: { + QV4::ScopedArrayObject a(scope, value); + if (a) { *reinterpret_cast<QStringList *>(data) = a->toQStringList(); return true; - } break; - case QMetaType::QVariantList: - if (value->asArrayObject()) { - QV4::ScopedArrayObject a(scope, value); + } + break; + } + case QMetaType::QVariantList: { + QV4::ScopedArrayObject a(scope, value); + if (a) { *reinterpret_cast<QVariantList *>(data) = variantListFromJS(a); return true; - } break; - case QMetaType::QVariantMap: - if (value->asObject()) { - QV4::ScopedObject o(scope, value); + } + break; + } + case QMetaType::QVariantMap: { + QV4::ScopedObject o(scope, value); + if (o) { *reinterpret_cast<QVariantMap *>(data) = variantMapFromJS(o); return true; - } break; + } + break; + } case QMetaType::QVariant: *reinterpret_cast<QVariant*>(data) = variantFromJS(value); return true; @@ -820,8 +827,11 @@ bool QV8Engine::metaTypeFromJS(const QV4::ValueRef value, int type, void *data) } case QMetaType::QJsonArray: { QV4::ScopedArrayObject a(scope, value); - *reinterpret_cast<QJsonArray *>(data) = QV4::JsonObject::toJsonArray(a); - return true; + if (a) { + *reinterpret_cast<QJsonArray *>(data) = QV4::JsonObject::toJsonArray(a); + return true; + } + break; } default: ; @@ -927,8 +937,10 @@ QVariant QV8Engine::variantFromJS(const QV4::ValueRef value, return value->asDouble(); if (value->isString()) return value->stringValue()->toQString(); + Q_ASSERT(value->isObject()); QV4::Scope scope(value->engine()); + if (value->asArrayObject()) { QV4::ScopedArrayObject a(scope, value); return variantListFromJS(a, visitedObjects); |