aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8/qv8engine.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-10-10 16:17:28 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-11 08:56:26 +0200
commit40db24351b6a89a3fb30a4870afdf90a4b91663f (patch)
tree2fa70623d615cef347c4ad3f9e8422455abc4aa3 /src/qml/qml/v8/qv8engine.cpp
parentb0e83cdc1a3a80ecc26cb31ac046b6c743238d41 (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.cpp38
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);