aboutsummaryrefslogtreecommitdiffstats
path: root/src/particles/qquickv4particledata.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-05-08 14:35:30 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2014-07-22 13:49:14 +0200
commite8746aeaecc4b1cfe312d8ed943ad74bd53f66e2 (patch)
treef4f391707da4054502b4826eedec5cc80bfe0a1c /src/particles/qquickv4particledata.cpp
parent0732e0177e62590c812f0fea9c32f7d427bd933f (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.cpp17
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;