Remove QV8Engine::scriptValueFromInternal
authorLars Knoll <lars.knoll@digia.com>
Wed, 22 May 2013 14:35:28 +0000 (16:35 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Wed, 22 May 2013 15:05:04 +0000 (17:05 +0200)
Change-Id: I43d672d17c0bbb498be71d7a25f8ca1389aeadf7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/qml/qml/qqmlproperty.cpp
src/qml/qml/v8/qjsengine.cpp
src/qml/qml/v8/qv8engine.cpp
src/qml/qml/v8/qv8engine_p.h
src/qml/qml/v8/qv8qobjectwrapper.cpp

index 583e243..8fd65bd 100644 (file)
@@ -56,6 +56,7 @@
 #include "qqmlvmemetaobject_p.h"
 #include "qqmlexpression_p.h"
 #include "qqmlvaluetypeproxybinding_p.h"
+#include <private/qjsvalue_p.h>
 #include <private/qv8bindings_p.h>
 
 #include <QStringList>
@@ -1572,7 +1573,9 @@ bool QQmlPropertyPrivate::writeBinding(QObject *object,
             expression->delayedError()->setErrorDescription(QLatin1String("Invalid use of Qt.binding() in a binding declaration."));
             return false;
         }
-        writeValueProperty(object, core, QVariant::fromValue(v8engine->scriptValueFromInternal(result->v4Value())), context, flags);
+        writeValueProperty(object, core, QVariant::fromValue(
+                               QJSValue(new QJSValuePrivate(QV8Engine::getV4(v8engine), result->v4Value()))),
+                           context, flags);
     } else if (isUndefined) {
         QString errorStr = QLatin1String("Unable to assign [undefined] to ");
         if (!QMetaType::typeName(type))
index 50e8265..f85f24a 100644 (file)
@@ -320,7 +320,7 @@ QJSValue QJSEngine::newQObject(QObject *object)
 {
     // ###
     Q_D(QJSEngine);
-    return d->scriptValueFromInternal(d->newQObject(object, QV8Engine::JavaScriptOwnership));
+    return new QJSValuePrivate(QV8Engine::getV4(d), d->newQObject(object, QV8Engine::JavaScriptOwnership));
 }
 
 /*!
index e9de7e8..188c8e3 100644 (file)
@@ -199,7 +199,7 @@ QVariant QV8Engine::toVariant(const QV4::Value &value, int typeHint)
         return QVariant::fromValue(jsonValueFromJS(value));
 
     if (typeHint == qMetaTypeId<QJSValue>())
-        return QVariant::fromValue(scriptValueFromInternal(value));
+        return QVariant::fromValue(QJSValue(new QJSValuePrivate(m_v4Engine, value)));
 
     if (QV4::Object *object = value.asObject()) {
         QV8ObjectResource *r = (QV8ObjectResource *)v8::Handle<v8::Value>(value)->ToObject()->GetExternalResource();
@@ -1306,11 +1306,6 @@ QObject *QV8Engine::qtObjectFromJS(const QV4::Value &value)
     return 0;
 }
 
-QJSValue QV8Engine::scriptValueFromInternal(const QV4::Value &value) const
-{
-    return new QJSValuePrivate(m_v4Engine, value);
-}
-
 void QV8Engine::startTimer(const QString &timerName)
 {
     if (!m_time.isValid())
index 9ce7c76..254445d 100644 (file)
@@ -365,8 +365,6 @@ public:
                                 const QByteArray &targetType,
                                 void **result);
 
-    QJSValue scriptValueFromInternal(const QV4::Value &) const;
-
     // used for console.time(), console.timeEnd()
     void startTimer(const QString &timerName);
     qint64 stopTimer(const QString &timerName, bool *wasRunning);
index 1e4ef04..0a3bd0b 100644 (file)
@@ -659,7 +659,7 @@ static inline void StoreProperty(QV8Engine *engine, QObject *object, QQmlPropert
     } else if (value->IsUndefined() && property->propType == QMetaType::QJsonValue) {
         PROPERTY_STORE(QJsonValue, QJsonValue(QJsonValue::Undefined));
     } else if (!newBinding && property->propType == qMetaTypeId<QJSValue>()) {
-        PROPERTY_STORE(QJSValue, engine->scriptValueFromInternal(value->v4Value()));
+        PROPERTY_STORE(QJSValue, new QJSValuePrivate(QV8Engine::getV4(engine), value->v4Value()));
     } else if (value->IsUndefined()) {
         QString error = QLatin1String("Cannot assign [undefined] to ");
         if (!QMetaType::typeName(property->propType))