Fix conversion of variantlists to ArrayObjects
authorLars Knoll <lars.knoll@digia.com>
Fri, 21 Jun 2013 12:14:37 +0000 (14:14 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Fri, 21 Jun 2013 12:56:30 +0000 (14:56 +0200)
Fixes a crash in the qquickmultipointtoucharea test

Change-Id: Ic1ca5220e5e7a569e3cc499ba120296fb885d6c0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/qml/qml/v8/qv8engine.cpp

index 037a1fc..a039637 100644 (file)
@@ -304,9 +304,11 @@ QV4::Value QV8Engine::fromVariant(const QVariant &variant)
             // directly against QList<QObject*>?
             const QList<QObject *> &list = *(QList<QObject *>*)ptr;
             QV4::ArrayObject *a = m_v4Engine->newArrayObject();
-            a->setArrayLength(list.count());
+            a->arrayReserve(list.count());
             for (int ii = 0; ii < list.count(); ++ii)
                 a->arrayData[ii].value = QV4::QObjectWrapper::wrap(m_v4Engine, list.at(ii));
+            a->arrayDataLen = list.count();
+            a->setArrayLengthUnchecked(list.count());
             return QV4::Value::fromObject(a);
         }