diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-05-08 14:35:30 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-07-22 13:49:14 +0200 |
commit | e8746aeaecc4b1cfe312d8ed943ad74bd53f66e2 (patch) | |
tree | f4f391707da4054502b4826eedec5cc80bfe0a1c /src/particles/qquickv4particledata.cpp | |
parent | 0732e0177e62590c812f0fea9c32f7d427bd933f (diff) |
Start implement new Object creation pattern
Create objects through a static create() method that returns a pointer
to the objects Data. This will later on simplify breaking the
direct connection between Object and Object::Data.
Change-Id: Id8daa3c766429bc36f432868e1957846147c96b6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/particles/qquickv4particledata.cpp')
-rw-r--r-- | src/particles/qquickv4particledata.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/particles/qquickv4particledata.cpp b/src/particles/qquickv4particledata.cpp index 58e37ab64d..cfe99afafc 100644 --- a/src/particles/qquickv4particledata.cpp +++ b/src/particles/qquickv4particledata.cpp @@ -274,6 +274,12 @@ QT_BEGIN_NAMESPACE struct QV4ParticleData : public QV4::Object { struct Data : QV4::Object::Data { + Data(QV4::ExecutionEngine *engine, QQuickParticleData *datum) + : Object::Data(engine) + , datum(datum) + { + setVTable(QV4ParticleData::staticVTable()); + } QQuickParticleData* datum;//TODO: Guard needed? }; struct { @@ -281,15 +287,6 @@ struct QV4ParticleData : public QV4::Object } __data; V4_OBJECT - QV4ParticleData(QV4::ExecutionEngine *engine, QQuickParticleData *datum) - : Object(engine) - { - setVTable(staticVTable()); - d()->datum = datum; - } - - static void destroy(Managed *that) - { that->as<QV4ParticleData>()->~QV4ParticleData(); } }; DEFINE_OBJECT_VTABLE(QV4ParticleData); @@ -523,7 +520,7 @@ QQuickV4ParticleData::QQuickV4ParticleData(QV8Engine* engine, QQuickParticleData QV8ParticleDataDeletable *d = particleV8Data(engine); QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine); QV4::Scope scope(v4); - QV4::ScopedObject o(scope, new (v4->memoryManager) QV4ParticleData(v4, datum)); + QV4::ScopedObject o(scope, new (v4) QV4ParticleData::Data(v4, datum)); QV4::ScopedObject p(scope, d->proto.value()); o->setPrototype(p.getPointer()); m_v4Value = o; |