aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4sequenceobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4sequenceobject.cpp')
-rw-r--r--src/qml/jsruntime/qv4sequenceobject.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp
index f0a71a8318..e8ba80de35 100644
--- a/src/qml/jsruntime/qv4sequenceobject.cpp
+++ b/src/qml/jsruntime/qv4sequenceobject.cpp
@@ -624,15 +624,18 @@ QVariant SequencePrototype::toVariant(QV4::Object *object)
return QQml##ElementTypeName##List::toVariant(a); \
} else
-QVariant SequencePrototype::toVariant(const QV4::Value &array, int typeHint, bool *succeeded)
+QVariant SequencePrototype::toVariant(const QV4::ValueRef array, int typeHint, bool *succeeded)
{
*succeeded = true;
- QV4::ArrayObject *a = array.asArrayObject();
- if (!a) {
+ if (!array->asArrayObject()) {
*succeeded = false;
return QVariant();
}
+ QV4::Scope scope(array->engine());
+ // ### GC
+ QV4::ArrayObject *a = array->asArrayObject();
+
FOREACH_QML_SEQUENCE_TYPE(SEQUENCE_TO_VARIANT) { /* else */ *succeeded = false; return QVariant(); }
}