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/qml | |
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/qml')
-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 |
6 files changed, 30 insertions, 35 deletions
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()); |