Fix a bug in the creation of JS Array's from variant and string lists
authorLars Knoll <lars.knoll@digia.com>
Sun, 19 May 2013 21:50:47 +0000 (23:50 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Tue, 21 May 2013 07:56:50 +0000 (09:56 +0200)
Correctly set the arrayDataLen or V4 assumes the array is empty.

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

index fcd3087..59d3ca9 100644 (file)
@@ -278,6 +278,7 @@ static QV4::Value arrayFromStringList(QV8Engine *engine, const QStringList &list
     a->arrayReserve(len);
     for (int ii = 0; ii < len; ++ii)
         a->arrayData[ii].value = QV4::Value::fromString(e->newString(list.at(ii)));
+    a->arrayDataLen = len;
     a->setArrayLengthUnchecked(len);
     return QV4::Value::fromObject(a);
 }
@@ -290,6 +291,7 @@ static QV4::Value arrayFromVariantList(QV8Engine *engine, const QVariantList &li
     a->arrayReserve(len);
     for (int ii = 0; ii < len; ++ii)
         a->arrayData[ii].value = engine->fromVariant(list.at(ii));
+    a->arrayDataLen = len;
     a->setArrayLengthUnchecked(len);
     return QV4::Value::fromObject(a);
 }