aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-03-18 08:28:25 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-19 08:14:46 +0100
commit4606bd668375770b8f9d84b1739c8a17cfc928d7 (patch)
tree0c7b089f795eb53af479eeb30fcc283b721aca07 /src/qml/jsruntime
parenta2e92f6dee12320a58a4bcc95c14649b27804427 (diff)
Optimize construction of SimpleArrayData
Change-Id: I7f8a0ac8a368af23534378e8c31d820b3b9f1f4c Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime')
-rw-r--r--src/qml/jsruntime/qv4arraydata_p.h4
-rw-r--r--src/qml/jsruntime/qv4engine.cpp2
-rw-r--r--src/qml/jsruntime/qv4engine_p.h1
3 files changed, 5 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h
index f127c75fb0..50b7b8a947 100644
--- a/src/qml/jsruntime/qv4arraydata_p.h
+++ b/src/qml/jsruntime/qv4arraydata_p.h
@@ -140,8 +140,8 @@ struct Q_QML_EXPORT SimpleArrayData : public ArrayData
V4_ARRAYDATA
SimpleArrayData(ExecutionEngine *engine)
- : ArrayData(engine->emptyClass)
- { setVTable(staticVTable()); }
+ : ArrayData(engine->simpleArrayDataClass)
+ {}
uint len;
uint offset;
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp
index 1ffb3344bc..aa1f01636f 100644
--- a/src/qml/jsruntime/qv4engine.cpp
+++ b/src/qml/jsruntime/qv4engine.cpp
@@ -261,6 +261,8 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory)
ArrayPrototype *arrayPrototype = new (memoryManager) ArrayPrototype(arrayClass);
arrayClass = arrayClass->changePrototype(arrayPrototype);
+ simpleArrayDataClass = InternalClass::create(this, SimpleArrayData::staticVTable(), 0);
+
InternalClass *argsClass = InternalClass::create(this, ArgumentsObject::staticVTable(), objectPrototype);
argsClass = argsClass->addMember(id_length, Attr_NotEnumerable);
argumentsObjectClass = argsClass->addMember(id_callee, Attr_Data|Attr_NotEnumerable);
diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h
index 6ad822d3b4..b2fd290265 100644
--- a/src/qml/jsruntime/qv4engine_p.h
+++ b/src/qml/jsruntime/qv4engine_p.h
@@ -204,6 +204,7 @@ public:
InternalClass *objectClass;
InternalClass *arrayClass;
+ InternalClass *simpleArrayDataClass;
InternalClass *stringObjectClass;
InternalClass *booleanClass;
InternalClass *numberClass;