aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2014-12-31 13:21:39 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2015-01-08 22:08:55 +0100
commita6c36616b0ccf9c1aeb71d90437c9226ae76fe10 (patch)
tree5c8e796b9fe6f15c08bd20dc20d084976c75845b
parentfbf674e566032121d6d0a865dbff2a5dac2b3f0d (diff)
Move extension mechanism over to use the v4 engine
Change-Id: Ib329fc7bcae3c78d962a116f53b2244a71f81228 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
-rw-r--r--src/imports/localstorage/plugin.cpp15
-rw-r--r--src/particles/qquickv4particledata.cpp15
-rw-r--r--src/qml/qml/qqmlcomponent.cpp9
-rw-r--r--src/qml/qml/qqmllocale.cpp19
-rw-r--r--src/qml/qml/v8/qqmlbuiltinfunctions.cpp4
-rw-r--r--src/qml/qml/v8/qv8engine_p.h8
-rw-r--r--src/qml/types/qqmldelegatemodel.cpp13
-rw-r--r--src/qml/util/qqmladaptormodel.cpp12
-rw-r--r--src/quick/items/context2d/qquickcontext2d.cpp26
9 files changed, 52 insertions, 69 deletions
diff --git a/src/imports/localstorage/plugin.cpp b/src/imports/localstorage/plugin.cpp
index 7c7989a9f4..0ada149a63 100644
--- a/src/imports/localstorage/plugin.cpp
+++ b/src/imports/localstorage/plugin.cpp
@@ -82,7 +82,7 @@ QT_BEGIN_NAMESPACE
class QQmlSqlDatabaseData : public QV8Engine::Deletable
{
public:
- QQmlSqlDatabaseData(QV8Engine *engine);
+ QQmlSqlDatabaseData(QV4::ExecutionEngine *engine);
~QQmlSqlDatabaseData();
QV4::PersistentValue databaseProto;
@@ -90,7 +90,7 @@ public:
QV4::PersistentValue rowsProto;
};
-V8_DEFINE_EXTENSION(QQmlSqlDatabaseData, databaseData)
+V4_DEFINE_EXTENSION(QQmlSqlDatabaseData, databaseData)
namespace QV4 {
@@ -318,7 +318,7 @@ static ReturnedValue qmlsqldatabase_executeSql(CallContext *ctx)
}
if (query.exec()) {
QV4::Scoped<QQmlSqlDatabaseWrapper> rows(scope, QQmlSqlDatabaseWrapper::create(engine));
- QV4::ScopedObject p(scope, databaseData(engine)->rowsProto.value());
+ QV4::ScopedObject p(scope, databaseData(scope.engine)->rowsProto.value());
rows->setPrototype(p.getPointer());
rows->d()->type = Heap::QQmlSqlDatabaseWrapper::Rows;
rows->d()->database = db;
@@ -395,7 +395,7 @@ static ReturnedValue qmlsqldatabase_changeVersion(CallContext *ctx)
V4THROW_SQL(SQLEXCEPTION_VERSION_ERR, QQmlEngine::tr("Version mismatch: expected %1, found %2").arg(from_version).arg(r->d()->version));
Scoped<QQmlSqlDatabaseWrapper> w(scope, QQmlSqlDatabaseWrapper::create(engine));
- ScopedObject p(scope, databaseData(engine)->queryProto.value());
+ ScopedObject p(scope, databaseData(scope.engine)->queryProto.value());
w->setPrototype(p.getPointer());
w->d()->type = Heap::QQmlSqlDatabaseWrapper::Query;
w->d()->database = db;
@@ -448,7 +448,7 @@ static ReturnedValue qmlsqldatabase_transaction_shared(CallContext *ctx, bool re
QSqlDatabase db = r->d()->database;
Scoped<QQmlSqlDatabaseWrapper> w(scope, QQmlSqlDatabaseWrapper::create(engine));
- QV4::ScopedObject p(scope, databaseData(engine)->queryProto.value());
+ QV4::ScopedObject p(scope, databaseData(scope.engine)->queryProto.value());
w->setPrototype(p.getPointer());
w->d()->type = Heap::QQmlSqlDatabaseWrapper::Query;
w->d()->database = db;
@@ -481,9 +481,8 @@ static ReturnedValue qmlsqldatabase_read_transaction(CallContext *ctx)
return qmlsqldatabase_transaction_shared(ctx, true);
}
-QQmlSqlDatabaseData::QQmlSqlDatabaseData(QV8Engine *engine)
+QQmlSqlDatabaseData::QQmlSqlDatabaseData(ExecutionEngine *v4)
{
- ExecutionEngine *v4 = QV8Engine::getV4(engine);
Scope scope(v4);
{
ScopedObject proto(scope, v4->newObject());
@@ -726,7 +725,7 @@ void QQuickLocalStorage::openDatabaseSync(QQmlV4Function *args)
}
QV4::Scoped<QQmlSqlDatabaseWrapper> db(scope, QQmlSqlDatabaseWrapper::create(engine));
- QV4::ScopedObject p(scope, databaseData(engine)->databaseProto.value());
+ QV4::ScopedObject p(scope, databaseData(scope.engine)->databaseProto.value());
db->setPrototype(p.getPointer());
db->d()->database = database;
db->d()->version = version;
diff --git a/src/particles/qquickv4particledata.cpp b/src/particles/qquickv4particledata.cpp
index 660bc7c11c..b9cf926052 100644
--- a/src/particles/qquickv4particledata.cpp
+++ b/src/particles/qquickv4particledata.cpp
@@ -279,11 +279,11 @@ struct QV4ParticleData : public QV4::Object
DEFINE_OBJECT_VTABLE(QV4ParticleData);
-class QV8ParticleDataDeletable : public QV8Engine::Deletable
+class QV4ParticleDataDeletable : public QV8Engine::Deletable
{
public:
- QV8ParticleDataDeletable(QV8Engine *engine);
- ~QV8ParticleDataDeletable();
+ QV4ParticleDataDeletable(QV4::ExecutionEngine *engine);
+ ~QV4ParticleDataDeletable();
QV4::PersistentValue proto;
};
@@ -445,9 +445,8 @@ FAKE_FLOAT_GETTER_AND_SETTER(curY, curY, setInstantaneousY)
FAKE_FLOAT_GETTER_AND_SETTER(curVY, curVY, setInstantaneousVY)
FAKE_FLOAT_GETTER_AND_SETTER(curAY, curAY, setInstantaneousAY)
-QV8ParticleDataDeletable::QV8ParticleDataDeletable(QV8Engine *engine)
+QV4ParticleDataDeletable::QV4ParticleDataDeletable(QV4::ExecutionEngine *v4)
{
- QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine);
QV4::Scope scope(v4);
QV4::ScopedObject p(scope, v4->newObject());
@@ -493,11 +492,11 @@ QV8ParticleDataDeletable::QV8ParticleDataDeletable(QV8Engine *engine)
proto = p;
}
-QV8ParticleDataDeletable::~QV8ParticleDataDeletable()
+QV4ParticleDataDeletable::~QV4ParticleDataDeletable()
{
}
-V8_DEFINE_EXTENSION(QV8ParticleDataDeletable, particleV8Data);
+V4_DEFINE_EXTENSION(QV4ParticleDataDeletable, particleV4Data);
QQuickV4ParticleData::QQuickV4ParticleData(QV8Engine* engine, QQuickParticleData* datum)
@@ -505,9 +504,9 @@ QQuickV4ParticleData::QQuickV4ParticleData(QV8Engine* engine, QQuickParticleData
if (!engine || !datum)
return;
- QV8ParticleDataDeletable *d = particleV8Data(engine);
QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine);
QV4::Scope scope(v4);
+ QV4ParticleDataDeletable *d = particleV4Data(scope.engine);
QV4::ScopedObject o(scope, v4->memoryManager->alloc<QV4ParticleData>(v4, datum));
QV4::ScopedObject p(scope, d->proto.value());
o->setPrototype(p);
diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp
index 115046f543..96623f21c3 100644
--- a/src/qml/qml/qqmlcomponent.cpp
+++ b/src/qml/qml/qqmlcomponent.cpp
@@ -87,12 +87,12 @@ QT_BEGIN_NAMESPACE
class QQmlComponentExtension : public QV8Engine::Deletable
{
public:
- QQmlComponentExtension(QV8Engine *);
+ QQmlComponentExtension(QV4::ExecutionEngine *v4);
virtual ~QQmlComponentExtension();
QV4::PersistentValue incubationProto;
};
-V8_DEFINE_EXTENSION(QQmlComponentExtension, componentExtension);
+V4_DEFINE_EXTENSION(QQmlComponentExtension, componentExtension);
/*!
\class QQmlComponent
@@ -1361,7 +1361,7 @@ void QQmlComponent::incubateObject(QQmlV4Function *args)
mode = QQmlIncubator::AsynchronousIfNested;
}
- QQmlComponentExtension *e = componentExtension(args->v4engine()->v8Engine);
+ QQmlComponentExtension *e = componentExtension(args->v4engine());
QV4::Scoped<QV4::QmlIncubatorObject> r(scope, v4->memoryManager->alloc<QV4::QmlIncubatorObject>(args->v4engine()->v8Engine, mode));
QV4::ScopedObject p(scope, e->incubationProto.value());
@@ -1406,9 +1406,8 @@ void QQmlComponentPrivate::initializeObjectWithInitialProperties(const QV4::Valu
}
}
-QQmlComponentExtension::QQmlComponentExtension(QV8Engine *engine)
+QQmlComponentExtension::QQmlComponentExtension(QV4::ExecutionEngine *v4)
{
- QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine);
QV4::Scope scope(v4);
QV4::ScopedObject proto(scope, v4->newObject());
proto->defineAccessorProperty(QStringLiteral("onStatusChanged"),
diff --git a/src/qml/qml/qqmllocale.cpp b/src/qml/qml/qqmllocale.cpp
index 295347dcd5..9aba5824bb 100644
--- a/src/qml/qml/qqmllocale.cpp
+++ b/src/qml/qml/qqmllocale.cpp
@@ -643,20 +643,19 @@ LOCALE_STRING_PROPERTY(exponential)
LOCALE_STRING_PROPERTY(amText)
LOCALE_STRING_PROPERTY(pmText)
-class QV8LocaleDataDeletable : public QV8Engine::Deletable
+class QV4LocaleDataDeletable : public QV8Engine::Deletable
{
public:
- QV8LocaleDataDeletable(QV8Engine *engine);
- ~QV8LocaleDataDeletable();
+ QV4LocaleDataDeletable(QV4::ExecutionEngine *engine);
+ ~QV4LocaleDataDeletable();
QV4::PersistentValue prototype;
};
-QV8LocaleDataDeletable::QV8LocaleDataDeletable(QV8Engine *engine)
+QV4LocaleDataDeletable::QV4LocaleDataDeletable(QV4::ExecutionEngine *engine)
{
- QV4::ExecutionEngine *eng = QV8Engine::getV4(engine);
- QV4::Scope scope(eng);
- QV4::ScopedObject o(scope, eng->newObject());
+ QV4::Scope scope(engine);
+ QV4::Scoped<QV4::Object> o(scope, engine->newObject());
o->defineDefaultProperty(QStringLiteral("dateFormat"), QQmlLocaleData::method_dateFormat, 0);
o->defineDefaultProperty(QStringLiteral("standaloneDayName"), QQmlLocaleData::method_standaloneDayName, 0);
@@ -687,11 +686,11 @@ QV8LocaleDataDeletable::QV8LocaleDataDeletable(QV8Engine *engine)
prototype = o;
}
-QV8LocaleDataDeletable::~QV8LocaleDataDeletable()
+QV4LocaleDataDeletable::~QV4LocaleDataDeletable()
{
}
-V8_DEFINE_EXTENSION(QV8LocaleDataDeletable, localeV8Data);
+V4_DEFINE_EXTENSION(QV4LocaleDataDeletable, localeV4Data);
/*!
\qmltype Locale
@@ -805,9 +804,9 @@ QV4::ReturnedValue QQmlLocale::locale(QV8Engine *v8engine, const QString &locale
QV4::ReturnedValue QQmlLocale::wrap(QV8Engine *engine, const QLocale &locale)
{
- QV8LocaleDataDeletable *d = localeV8Data(engine);
QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine);
QV4::Scope scope(v4);
+ QV4LocaleDataDeletable *d = localeV4Data(scope.engine);
QV4::Scoped<QQmlLocaleData> wrapper(scope, v4->memoryManager->alloc<QQmlLocaleData>(v4));
wrapper->d()->locale = locale;
QV4::ScopedObject p(scope, d->prototype.value());
diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
index 70e512df41..4b40fa3f40 100644
--- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
+++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
@@ -885,9 +885,7 @@ QQmlEngine::quit() signal to the QCoreApplication::quit() slot.
*/
ReturnedValue QtObject::method_quit(CallContext *ctx)
{
- QV8Engine *v8engine = ctx->d()->engine->v8Engine;
-
- QQmlEnginePrivate::get(v8engine->engine())->sendQuit();
+ QQmlEnginePrivate::get(ctx->engine()->qmlEngine())->sendQuit();
return QV4::Encode::undefined();
}
diff --git a/src/qml/qml/v8/qv8engine_p.h b/src/qml/qml/v8/qv8engine_p.h
index 7bd3e56a9d..329f4912c0 100644
--- a/src/qml/qml/v8/qv8engine_p.h
+++ b/src/qml/qml/v8/qv8engine_p.h
@@ -83,8 +83,8 @@ namespace QV4 {
#define V4THROW_TYPE(string) \
return ctx->engine()->throwTypeError(QStringLiteral(string));
-#define V8_DEFINE_EXTENSION(dataclass, datafunction) \
- static inline dataclass *datafunction(QV8Engine *engine) \
+#define V4_DEFINE_EXTENSION(dataclass, datafunction) \
+ static inline dataclass *datafunction(QV4::ExecutionEngine *engine) \
{ \
static int extensionId = -1; \
if (extensionId == -1) { \
@@ -93,10 +93,10 @@ namespace QV4 {
extensionId = QV8Engine::registerExtension(); \
QV8Engine::registrationMutex()->unlock(); \
} \
- dataclass *rv = (dataclass *)engine->extensionData(extensionId); \
+ dataclass *rv = (dataclass *)engine->v8Engine->extensionData(extensionId); \
if (!rv) { \
rv = new dataclass(engine); \
- engine->setExtensionData(extensionId, rv); \
+ engine->v8Engine->setExtensionData(extensionId, rv); \
} \
return rv; \
} \
diff --git a/src/qml/types/qqmldelegatemodel.cpp b/src/qml/types/qqmldelegatemodel.cpp
index a4d86b520c..146816920a 100644
--- a/src/qml/types/qqmldelegatemodel.cpp
+++ b/src/qml/types/qqmldelegatemodel.cpp
@@ -122,7 +122,7 @@ DEFINE_OBJECT_VTABLE(QV4::DelegateModelGroupFunction);
class QQmlDelegateModelEngineData : public QV8Engine::Deletable
{
public:
- QQmlDelegateModelEngineData(QV8Engine *engine);
+ QQmlDelegateModelEngineData(QV4::ExecutionEngine *v4);
~QQmlDelegateModelEngineData();
QV4::ReturnedValue array(QV8Engine *engine, const QVector<QQmlChangeSet::Change> &changes);
@@ -130,7 +130,7 @@ public:
QV4::PersistentValue changeProto;
};
-V8_DEFINE_EXTENSION(QQmlDelegateModelEngineData, engineData)
+V4_DEFINE_EXTENSION(QQmlDelegateModelEngineData, engineData)
void QQmlDelegateModelPartsMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop)
@@ -2256,8 +2256,8 @@ void QQmlDelegateModelGroupPrivate::emitChanges(QV8Engine *engine)
Q_Q(QQmlDelegateModelGroup);
if (isChangedConnected() && !changeSet.isEmpty()) {
QV4::Scope scope(QV8Engine::getV4(engine));
- QV4::ScopedValue removed(scope, engineData(engine)->array(engine, changeSet.removes()));
- QV4::ScopedValue inserted(scope, engineData(engine)->array(engine, changeSet.inserts()));
+ QV4::ScopedValue removed(scope, engineData(scope.engine)->array(engine, changeSet.removes()));
+ QV4::ScopedValue inserted(scope, engineData(scope.engine)->array(engine, changeSet.inserts()));
emit q->changed(QQmlV4Handle(removed), QQmlV4Handle(inserted));
}
if (changeSet.difference() != 0)
@@ -3296,7 +3296,7 @@ public:
const QQmlChangeSet::Change &change = array->at(index);
- QV4::ScopedObject changeProto(scope, engineData(v4->v8Engine)->changeProto.value());
+ QV4::ScopedObject changeProto(scope, engineData(v4)->changeProto.value());
QV4::Scoped<QQmlDelegateModelGroupChange> object(scope, QQmlDelegateModelGroupChange::create(v4));
object->setPrototype(changeProto);
object->d()->change = change;
@@ -3333,9 +3333,8 @@ QV4::Heap::QQmlDelegateModelGroupChangeArray::QQmlDelegateModelGroupChangeArray(
DEFINE_OBJECT_VTABLE(QQmlDelegateModelGroupChangeArray);
-QQmlDelegateModelEngineData::QQmlDelegateModelEngineData(QV8Engine *e)
+QQmlDelegateModelEngineData::QQmlDelegateModelEngineData(QV4::ExecutionEngine *v4)
{
- QV4::ExecutionEngine *v4 = QV8Engine::getV4(e);
QV4::Scope scope(v4);
QV4::ScopedObject proto(scope, v4->newObject());
diff --git a/src/qml/util/qqmladaptormodel.cpp b/src/qml/util/qqmladaptormodel.cpp
index 262a6ca01c..580641a4d6 100644
--- a/src/qml/util/qqmladaptormodel.cpp
+++ b/src/qml/util/qqmladaptormodel.cpp
@@ -46,14 +46,14 @@ QT_BEGIN_NAMESPACE
class QQmlAdaptorModelEngineData : public QV8Engine::Deletable
{
public:
- QQmlAdaptorModelEngineData(QV8Engine *engine);
+ QQmlAdaptorModelEngineData(QV4::ExecutionEngine *v4);
~QQmlAdaptorModelEngineData();
QV4::ExecutionEngine *v4;
QV4::PersistentValue listItemProto;
};
-V8_DEFINE_EXTENSION(QQmlAdaptorModelEngineData, engineData)
+V4_DEFINE_EXTENSION(QQmlAdaptorModelEngineData, engineData)
static QV4::ReturnedValue get_index(QV4::CallContext *ctx)
{
@@ -421,7 +421,7 @@ public:
QV4::ReturnedValue get()
{
if (type->prototype.isUndefined()) {
- QQmlAdaptorModelEngineData * const data = engineData(v4->v8Engine);
+ QQmlAdaptorModelEngineData * const data = engineData(v4);
type->initializeConstructor(data);
}
QV4::Scope scope(v4);
@@ -602,7 +602,7 @@ public:
QV4::ReturnedValue get()
{
- QQmlAdaptorModelEngineData *data = engineData(v4->v8Engine);
+ QQmlAdaptorModelEngineData *data = engineData(v4);
QV4::Scope scope(v4);
QV4::ScopedObject o(scope, v4->memoryManager->alloc<QQmlDelegateModelItemObject>(v4, this));
QV4::ScopedObject p(scope, data->listItemProto.value());
@@ -955,8 +955,8 @@ void QQmlAdaptorModel::objectDestroyed(QObject *)
setModel(QVariant(), 0, 0);
}
-QQmlAdaptorModelEngineData::QQmlAdaptorModelEngineData(QV8Engine *e)
- : v4(QV8Engine::getV4(e))
+QQmlAdaptorModelEngineData::QQmlAdaptorModelEngineData(QV4::ExecutionEngine *v4)
+ : v4(v4)
{
QV4::Scope scope(v4);
QV4::ScopedObject proto(scope, v4->newObject());
diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp
index bed9fb3b2f..5a4ce7e267 100644
--- a/src/quick/items/context2d/qquickcontext2d.cpp
+++ b/src/quick/items/context2d/qquickcontext2d.cpp
@@ -463,7 +463,7 @@ static QFont qt_font_from_string(const QString& fontString, const QFont &current
class QQuickContext2DEngineData : public QV8Engine::Deletable
{
public:
- QQuickContext2DEngineData(QV8Engine *engine);
+ QQuickContext2DEngineData(QV4::ExecutionEngine *engine);
~QQuickContext2DEngineData();
QV4::PersistentValue contextPrototype;
@@ -471,7 +471,7 @@ public:
QV4::PersistentValue pixelArrayProto;
};
-V8_DEFINE_EXTENSION(QQuickContext2DEngineData, engineData)
+V4_DEFINE_EXTENSION(QQuickContext2DEngineData, engineData)
namespace QV4 {
namespace Heap {
@@ -937,9 +937,9 @@ DEFINE_OBJECT_VTABLE(QQuickJSContext2DImageData);
static QV4::ReturnedValue qt_create_image_data(qreal w, qreal h, QV8Engine* engine, const QImage& image)
{
- QQuickContext2DEngineData *ed = engineData(engine);
QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine);
QV4::Scope scope(v4);
+ QQuickContext2DEngineData *ed = engineData(scope.engine);
QV4::Scoped<QQuickJSContext2DPixelData> pixelData(scope, scope.engine->memoryManager->alloc<QQuickJSContext2DPixelData>(v4));
QV4::ScopedObject p(scope, ed->pixelArrayProto.value());
pixelData->setPrototype(p);
@@ -1546,9 +1546,6 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createLinearGradient(QV4::
QV4::Scoped<QQuickJSContext2D> r(scope, ctx->d()->callData->thisObject.as<QQuickJSContext2D>());
CHECK_CONTEXT(r)
-
- QV8Engine *engine = scope.engine->v8Engine;
-
if (ctx->d()->callData->argc >= 4) {
qreal x0 = ctx->d()->callData->args[0].toNumber();
qreal y0 = ctx->d()->callData->args[1].toNumber();
@@ -1561,7 +1558,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createLinearGradient(QV4::
|| !qIsFinite(y1)) {
V4THROW_DOM(DOMEXCEPTION_NOT_SUPPORTED_ERR, "createLinearGradient(): Incorrect arguments")
}
- QQuickContext2DEngineData *ed = engineData(engine);
+ QQuickContext2DEngineData *ed = engineData(scope.engine);
QV4::Scoped<QQuickContext2DStyle> gradient(scope, scope.engine->memoryManager->alloc<QQuickContext2DStyle>(scope.engine));
QV4::ScopedObject p(scope, ed->gradientProto.value());
@@ -1592,9 +1589,6 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createRadialGradient(QV4::
QV4::Scoped<QQuickJSContext2D> r(scope, ctx->d()->callData->thisObject.as<QQuickJSContext2D>());
CHECK_CONTEXT(r)
-
- QV8Engine *engine = scope.engine->v8Engine;
-
if (ctx->d()->callData->argc >= 6) {
qreal x0 = ctx->d()->callData->args[0].toNumber();
qreal y0 = ctx->d()->callData->args[1].toNumber();
@@ -1615,7 +1609,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createRadialGradient(QV4::
if (r0 < 0 || r1 < 0)
V4THROW_DOM(DOMEXCEPTION_INDEX_SIZE_ERR, "createRadialGradient(): Incorrect arguments")
- QQuickContext2DEngineData *ed = engineData(engine);
+ QQuickContext2DEngineData *ed = engineData(scope.engine);
QV4::Scoped<QQuickContext2DStyle> gradient(scope, scope.engine->memoryManager->alloc<QQuickContext2DStyle>(scope.engine));
QV4::ScopedObject p(scope, ed->gradientProto.value());
@@ -1646,9 +1640,6 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createConicalGradient(QV4:
QV4::Scoped<QQuickJSContext2D> r(scope, ctx->d()->callData->thisObject.as<QQuickJSContext2D>());
CHECK_CONTEXT(r)
-
- QV8Engine *engine = scope.engine->v8Engine;
-
if (ctx->d()->callData->argc >= 3) {
qreal x = ctx->d()->callData->args[0].toNumber();
qreal y = ctx->d()->callData->args[1].toNumber();
@@ -1661,7 +1652,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createConicalGradient(QV4:
V4THROW_DOM(DOMEXCEPTION_INDEX_SIZE_ERR, "createConicalGradient(): Incorrect arguments");
}
- QQuickContext2DEngineData *ed = engineData(engine);
+ QQuickContext2DEngineData *ed = engineData(scope.engine);
QV4::Scoped<QQuickContext2DStyle> gradient(scope, scope.engine->memoryManager->alloc<QQuickContext2DStyle>(scope.engine));
QV4::ScopedObject p(scope, ed->gradientProto.value());
@@ -4203,9 +4194,8 @@ QImage QQuickContext2D::toImage(const QRectF& bounds)
}
-QQuickContext2DEngineData::QQuickContext2DEngineData(QV8Engine *engine)
+QQuickContext2DEngineData::QQuickContext2DEngineData(QV4::ExecutionEngine *v4)
{
- QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine);
QV4::Scope scope(v4);
QV4::ScopedObject proto(scope, QQuickJSContext2DPrototype::create(v4));
@@ -4320,7 +4310,7 @@ void QQuickContext2D::setV8Engine(QV8Engine *engine)
if (m_v8engine == 0)
return;
- QQuickContext2DEngineData *ed = engineData(engine);
+ QQuickContext2DEngineData *ed = engineData(QV8Engine::getV4(engine));
QV4::ExecutionEngine *v4Engine = QV8Engine::getV4(engine);
QV4::Scope scope(v4Engine);
QV4::Scoped<QQuickJSContext2D> wrapper(scope, v4Engine->memoryManager->alloc<QQuickJSContext2D>(v4Engine));