diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2014-12-31 13:21:39 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2015-01-08 22:08:55 +0100 |
commit | a6c36616b0ccf9c1aeb71d90437c9226ae76fe10 (patch) | |
tree | 5c8e796b9fe6f15c08bd20dc20d084976c75845b /src | |
parent | fbf674e566032121d6d0a865dbff2a5dac2b3f0d (diff) |
Move extension mechanism over to use the v4 engine
Change-Id: Ib329fc7bcae3c78d962a116f53b2244a71f81228
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/localstorage/plugin.cpp | 15 | ||||
-rw-r--r-- | src/particles/qquickv4particledata.cpp | 15 | ||||
-rw-r--r-- | src/qml/qml/qqmlcomponent.cpp | 9 | ||||
-rw-r--r-- | src/qml/qml/qqmllocale.cpp | 19 | ||||
-rw-r--r-- | src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 4 | ||||
-rw-r--r-- | src/qml/qml/v8/qv8engine_p.h | 8 | ||||
-rw-r--r-- | src/qml/types/qqmldelegatemodel.cpp | 13 | ||||
-rw-r--r-- | src/qml/util/qqmladaptormodel.cpp | 12 | ||||
-rw-r--r-- | src/quick/items/context2d/qquickcontext2d.cpp | 26 |
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 ¤t 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)); |