diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-03-18 08:28:25 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-19 08:14:46 +0100 |
commit | 4606bd668375770b8f9d84b1739c8a17cfc928d7 (patch) | |
tree | 0c7b089f795eb53af479eeb30fcc283b721aca07 /src/qml/jsruntime | |
parent | a2e92f6dee12320a58a4bcc95c14649b27804427 (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.h | 4 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4engine_p.h | 1 |
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; |