diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-05-08 14:36:48 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2013-05-08 15:33:50 +0200 |
commit | 4a263bde7511a41b57d32c1073f5213f6015c3dd (patch) | |
tree | 69595e5493df468433905b99e17f0c33b1373f19 /src/particles | |
parent | bd0498a50d8d37cb10f1bf19fe6bd429a14ba695 (diff) |
Remove v8::persistent usage from particles
Change-Id: I69cd4ccf51c40e2ee63f024a7ccc2d8b35b14ae4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/particles')
-rw-r--r-- | src/particles/qquickparticlesystem.cpp | 2 | ||||
-rw-r--r-- | src/particles/qquickv8particledata.cpp | 15 | ||||
-rw-r--r-- | src/particles/qquickv8particledata_p.h | 6 |
3 files changed, 12 insertions, 11 deletions
diff --git a/src/particles/qquickparticlesystem.cpp b/src/particles/qquickparticlesystem.cpp index 2043eaffd3..ce67fecf54 100644 --- a/src/particles/qquickparticlesystem.cpp +++ b/src/particles/qquickparticlesystem.cpp @@ -531,7 +531,7 @@ QQmlV4Handle QQuickParticleData::v8Value() { if (!v8Datum) v8Datum = new QQuickV8ParticleData(QQmlEnginePrivate::getV8Engine(qmlEngine(system)), this); - return v8Datum->v8Value(); + return v8Datum->v4Value(); } //sets the x accleration without affecting the instantaneous x velocity or position void QQuickParticleData::setInstantaneousAX(qreal ax) diff --git a/src/particles/qquickv8particledata.cpp b/src/particles/qquickv8particledata.cpp index 08fc1415ec..9b8d1adfb9 100644 --- a/src/particles/qquickv8particledata.cpp +++ b/src/particles/qquickv8particledata.cpp @@ -44,6 +44,7 @@ #include "qquickparticlesystem_p.h"//for QQuickParticleData #include <QDebug> #include <private/qv4engine_p.h> +#include <private/qv4functionobject_p.h> QT_BEGIN_NAMESPACE @@ -284,7 +285,7 @@ public: QV8ParticleDataDeletable(QV8Engine *engine); ~QV8ParticleDataDeletable(); - v8::Persistent<v8::Function> constructor; + QV4::PersistentValue constructor; }; static QV4::Value particleData_discard(const v8::Arguments &args) @@ -467,12 +468,11 @@ QV8ParticleDataDeletable::QV8ParticleDataDeletable(QV8Engine *engine) REGISTER_ACCESSOR(ft, engine, blue, blue); REGISTER_ACCESSOR(ft, engine, alpha, alpha); - constructor = qPersistentNew(ft->GetFunction()); + constructor = ft->GetFunction()->v4Value(); } QV8ParticleDataDeletable::~QV8ParticleDataDeletable() { - qPersistentDispose(constructor); } V8_DEFINE_EXTENSION(QV8ParticleDataDeletable, particleV8Data); @@ -484,20 +484,19 @@ QQuickV8ParticleData::QQuickV8ParticleData(QV8Engine* engine, QQuickParticleData return; QV8ParticleDataDeletable *d = particleV8Data(engine); - m_v8Value = qPersistentNew(d->constructor->NewInstance()); + m_v4Value = d->constructor.value().asFunctionObject()->newInstance(); QV8ParticleDataResource *r = new QV8ParticleDataResource(engine); r->datum = datum; - m_v8Value->SetExternalResource(r); + v8::Handle<v8::Object>(m_v4Value)->SetExternalResource(r); } QQuickV8ParticleData::~QQuickV8ParticleData() { - qPersistentDispose(m_v8Value); } -QQmlV4Handle QQuickV8ParticleData::v8Value() +QQmlV4Handle QQuickV8ParticleData::v4Value() { - return QQmlV4Handle::fromV8Handle(m_v8Value); + return QQmlV4Handle::fromValue(m_v4Value); } QT_END_NAMESPACE diff --git a/src/particles/qquickv8particledata_p.h b/src/particles/qquickv8particledata_p.h index 8c4e2ced1c..11cca70b12 100644 --- a/src/particles/qquickv8particledata_p.h +++ b/src/particles/qquickv8particledata_p.h @@ -44,6 +44,8 @@ #include <private/qv8engine_p.h> +#include <private/qv4value_p.h> + QT_BEGIN_NAMESPACE class QQuickParticleData; @@ -51,9 +53,9 @@ class QQuickV8ParticleData { public: QQuickV8ParticleData(QV8Engine*,QQuickParticleData*); ~QQuickV8ParticleData(); - QQmlV4Handle v8Value(); + QQmlV4Handle v4Value(); private: - v8::Persistent<v8::Object> m_v8Value; + QV4::PersistentValue m_v4Value; }; |