aboutsummaryrefslogtreecommitdiffstats
path: root/src/particles
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-05-08 14:36:48 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2013-05-08 15:33:50 +0200
commit4a263bde7511a41b57d32c1073f5213f6015c3dd (patch)
tree69595e5493df468433905b99e17f0c33b1373f19 /src/particles
parentbd0498a50d8d37cb10f1bf19fe6bd429a14ba695 (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.cpp2
-rw-r--r--src/particles/qquickv8particledata.cpp15
-rw-r--r--src/particles/qquickv8particledata_p.h6
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;
};