Remove v8engine usage in the value type provider
authorLars Knoll <lars.knoll@theqtcompany.com>
Tue, 30 Dec 2014 20:47:49 +0000 (21:47 +0100)
committerSimon Hausmann <simon.hausmann@digia.com>
Thu, 8 Jan 2015 21:08:46 +0000 (22:08 +0100)
Change-Id: I6b26a8249175a86c6e15d000b24ba3300e112715
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/qml/qml/qqmlglobal.cpp
src/qml/qml/qqmlglobal_p.h
src/qml/qml/qqmllistwrapper.cpp
src/qml/qml/qqmltypewrapper.cpp
src/qml/qml/v8/qqmlbuiltinfunctions.cpp
src/quick/util/qquickglobal.cpp

index 57c0993..82c1b68 100644 (file)
@@ -171,7 +171,7 @@ QVariant QQmlValueTypeProvider::createVariantFromString(int type, const QString
     return QVariant();
 }
 
-QVariant QQmlValueTypeProvider::createVariantFromJsObject(int type, QQmlV4Handle obj, QV8Engine *e, bool *ok)
+QVariant QQmlValueTypeProvider::createVariantFromJsObject(int type, QQmlV4Handle obj, QV4::ExecutionEngine *e, bool *ok)
 {
     QVariant v;
 
@@ -252,7 +252,7 @@ bool QQmlValueTypeProvider::createFromString(int, const QString &, void *, size_
 bool QQmlValueTypeProvider::createStringFrom(int, const void *, QString *) { return false; }
 bool QQmlValueTypeProvider::variantFromString(const QString &, QVariant *) { return false; }
 bool QQmlValueTypeProvider::variantFromString(int, const QString &, QVariant *) { return false; }
-bool QQmlValueTypeProvider::variantFromJsObject(int, QQmlV4Handle, QV8Engine *, QVariant *) { return false; }
+bool QQmlValueTypeProvider::variantFromJsObject(int, QQmlV4Handle, QV4::ExecutionEngine *, QVariant *) { return false; }
 bool QQmlValueTypeProvider::equal(int, const void *, const void *, size_t) { return false; }
 bool QQmlValueTypeProvider::store(int, const void *, void *, size_t) { return false; }
 bool QQmlValueTypeProvider::read(int, const void *, size_t, int, void *) { return false; }
index 2832d03..da09956 100644 (file)
@@ -234,7 +234,7 @@ public:
 
     QVariant createVariantFromString(const QString &);
     QVariant createVariantFromString(int, const QString &, bool *);
-    QVariant createVariantFromJsObject(int, QQmlV4Handle, QV8Engine *, bool*);
+    QVariant createVariantFromJsObject(int, QQmlV4Handle, QV4::ExecutionEngine *, bool*);
 
     bool equalValueType(int, const void *, const void *, size_t);
     bool storeValueType(int, const void *, void *, size_t);
@@ -253,7 +253,7 @@ private:
 
     virtual bool variantFromString(const QString &, QVariant *);
     virtual bool variantFromString(int, const QString &, QVariant *);
-    virtual bool variantFromJsObject(int, QQmlV4Handle, QV8Engine *, QVariant *);
+    virtual bool variantFromJsObject(int, QQmlV4Handle, QV4::ExecutionEngine *, QVariant *);
 
     virtual bool equal(int, const void *, const void *, size_t);
     virtual bool store(int, const void *, void *, size_t);
index f80d268..b2e84c0 100644 (file)
@@ -90,7 +90,7 @@ QVariant QmlListWrapper::toVariant() const
     if (!d()->object)
         return QVariant();
 
-    return QVariant::fromValue(QQmlListReferencePrivate::init(d()->property, d()->propertyType, d()->internalClass->engine->v8Engine->engine()));
+    return QVariant::fromValue(QQmlListReferencePrivate::init(d()->property, d()->propertyType, engine()->qmlEngine()));
 }
 
 
index c0f9ca1..6cdc83a 100644 (file)
@@ -71,7 +71,7 @@ QObject* QmlTypeWrapper::singletonObject() const
     if (!isSingleton())
         return 0;
 
-    QQmlEngine *e = engine()->v8Engine->engine();
+    QQmlEngine *e = engine()->qmlEngine();
     QQmlType::SingletonInstanceInfo *siinfo = d()->type->singletonInstanceInfo();
     siinfo->init(e);
     return siinfo->qobjectApi(e);
@@ -80,7 +80,7 @@ QObject* QmlTypeWrapper::singletonObject() const
 QVariant QmlTypeWrapper::toVariant() const
 {
     if (d()->type && d()->type->isSingleton()) {
-        QQmlEngine *e = engine()->v8Engine->engine();
+        QQmlEngine *e = engine()->qmlEngine();
         QQmlType::SingletonInstanceInfo *siinfo = d()->type->singletonInstanceInfo();
         siinfo->init(e); // note: this will also create QJSValue singleton which isn't strictly required.
         QObject *qobjectSingleton = siinfo->qobjectApi(e);
@@ -143,7 +143,7 @@ ReturnedValue QmlTypeWrapper::get(Managed *m, String *name, bool *hasProperty)
 
         // singleton types are handled differently to other types.
         if (type->isSingleton()) {
-            QQmlEngine *e = v4->v8Engine->engine();
+            QQmlEngine *e = v4->qmlEngine();
             QQmlType::SingletonInstanceInfo *siinfo = type->singletonInstanceInfo();
             siinfo->init(e);
 
index 9f659a7..70e512d 100644 (file)
@@ -317,9 +317,9 @@ ReturnedValue QtObject::method_font(QV4::CallContext *ctx)
     if (ctx->d()->callData->argc != 1 || !ctx->d()->callData->args[0].isObject())
         V4THROW_ERROR("Qt.font(): Invalid arguments");
 
-    QV8Engine *v8engine = ctx->d()->engine->v8Engine;
+    QV4::ExecutionEngine *v4 = ctx->d()->engine;
     bool ok = false;
-    QVariant v = QQml_valueTypeProvider()->createVariantFromJsObject(QMetaType::QFont, QQmlV4Handle(ctx->d()->callData->args[0]), v8engine, &ok);
+    QVariant v = QQml_valueTypeProvider()->createVariantFromJsObject(QMetaType::QFont, QQmlV4Handle(ctx->d()->callData->args[0]), v4, &ok);
     if (!ok)
         V4THROW_ERROR("Qt.font(): Invalid argument: no valid font subproperties specified");
     return QV8Engine::fromVariant(ctx->engine(), v);
@@ -409,11 +409,11 @@ matrix values.
 */
 ReturnedValue QtObject::method_matrix4x4(QV4::CallContext *ctx)
 {
-    QV8Engine *v8engine = ctx->d()->engine->v8Engine;
+    QV4::ExecutionEngine *v4 = ctx->d()->engine;
 
     if (ctx->d()->callData->argc == 1 && ctx->d()->callData->args[0].isObject()) {
         bool ok = false;
-        QVariant v = QQml_valueTypeProvider()->createVariantFromJsObject(QMetaType::QMatrix4x4, QQmlV4Handle(ctx->d()->callData->args[0]), v8engine, &ok);
+        QVariant v = QQml_valueTypeProvider()->createVariantFromJsObject(QMetaType::QMatrix4x4, QQmlV4Handle(ctx->d()->callData->args[0]), v4, &ok);
         if (!ok)
             V4THROW_ERROR("Qt.matrix4x4(): Invalid argument: not a valid matrix4x4 values array");
         return QV8Engine::fromVariant(ctx->engine(), v);
index e3250a6..c75c87f 100644 (file)
@@ -261,13 +261,11 @@ public:
         return QMatrix4x4();
     }
 
-    static QFont fontFromObject(QQmlV4Handle object, QV8Engine *e, bool *ok)
+    static QFont fontFromObject(QQmlV4Handle object, QV4::ExecutionEngine *v4, bool *ok)
     {
-        Q_UNUSED(e);
-
-        if (ok) *ok = false;
+        if (ok)
+            *ok = false;
         QFont retn;
-        QV4::ExecutionEngine *v4 = QV8Engine::getV4(e);
         QV4::Scope scope(v4);
         QV4::ScopedObject obj(scope, object);
         if (!obj) {
@@ -339,10 +337,10 @@ public:
         return retn;
     }
 
-    static QMatrix4x4 matrix4x4FromObject(QQmlV4Handle object, QV8Engine *e, bool *ok)
+    static QMatrix4x4 matrix4x4FromObject(QQmlV4Handle object, QV4::ExecutionEngine *v4, bool *ok)
     {
-        if (ok) *ok = false;
-        QV4::ExecutionEngine *v4 = QV8Engine::getV4(e);
+        if (ok)
+            *ok = false;
         QV4::Scope scope(v4);
         QV4::ScopedArrayObject array(scope, object);
         if (!array)
@@ -704,9 +702,8 @@ public:
         return false;
     }
 
-    bool variantFromJsObject(int type, QQmlV4Handle object, QV8Engine *e, QVariant *v)
+    bool variantFromJsObject(int type, QQmlV4Handle object, QV4::ExecutionEngine *v4, QVariant *v)
     {
-        QV4::ExecutionEngine *v4 = QV8Engine::getV4(e);
         QV4::Scope scope(v4);
 #ifndef QT_NO_DEBUG
         QV4::ScopedObject obj(scope, object);
@@ -715,10 +712,10 @@ public:
         bool ok = false;
         switch (type) {
         case QMetaType::QFont:
-            *v = QVariant::fromValue(fontFromObject(object, e, &ok));
+            *v = QVariant::fromValue(fontFromObject(object, v4, &ok));
             break;
         case QMetaType::QMatrix4x4:
-            *v = QVariant::fromValue(matrix4x4FromObject(object, e, &ok));
+            *v = QVariant::fromValue(matrix4x4FromObject(object, v4, &ok));
         default: break;
         }