diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-09-27 09:45:55 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-30 08:05:46 +0200 |
commit | 0e36db9f1179d1bdf0710494e98ff7aee1a2d836 (patch) | |
tree | e9f00fe028ee24b4412e3bb8418a3381e81c772b /src/qml/qml/qqmlvme.cpp | |
parent | 472c8e6bed0b18c4e853c905ace07a09c64c29d2 (diff) |
Remove most uses of Value from qml/qml
Change-Id: I409a8505a9e01f86d777bc694d24516d1c8f0c4d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlvme.cpp')
-rw-r--r-- | src/qml/qml/qqmlvme.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/qml/qml/qqmlvme.cpp b/src/qml/qml/qqmlvme.cpp index 512b9b4674..f256f3a1ce 100644 --- a/src/qml/qml/qqmlvme.cpp +++ b/src/qml/qml/qqmlvme.cpp @@ -296,12 +296,12 @@ static QVariant variantFromString(const QString &string) #define QML_STORE_VAR(name, value) \ QML_BEGIN_INSTR(name) \ - QV4::Value v4value = value; \ + QV4::ValueRef valueref = value; \ QObject *target = objects.top(); \ CLEAN_PROPERTY(target, instr.propertyIndex); \ QQmlVMEMetaObject *vmemo = QQmlVMEMetaObject::get(target); \ Q_ASSERT(vmemo); \ - vmemo->setVMEProperty(instr.propertyIndex, v4value); \ + vmemo->setVMEProperty(instr.propertyIndex, valueref); \ QML_END_INSTR(name) #define QML_STORE_POINTER(name, value) \ @@ -339,6 +339,9 @@ QObject *QQmlVME::run(QList<QQmlError> *errors, QQmlEngine *engine = states.at(0).context->engine; QQmlEnginePrivate *ep = QQmlEnginePrivate::get(engine); + QV4::ExecutionEngine *v4 = ep->v4engine(); + QV4::Scope valueScope(v4); + QV4::ScopedValue tmpValue(valueScope); int status = -1; // needed for dbus QQmlPropertyPrivate::WriteFlags flags = QQmlPropertyPrivate::BypassInterceptor | @@ -372,7 +375,7 @@ QObject *QQmlVME::run(QList<QQmlError> *errors, // Store a created object in a property. These all pop from the objects stack. QML_STORE_VALUE(StoreObject, QObject *, objects.pop()); QML_STORE_VALUE(StoreVariantObject, QVariant, QVariant::fromValue(objects.pop())); - QML_STORE_VAR(StoreVarObject, QV4::Value::fromReturnedValue(QV4::QObjectWrapper::wrap(ep->v4engine(), objects.pop()))); + QML_STORE_VAR(StoreVarObject, (tmpValue = QV4::QObjectWrapper::wrap(ep->v4engine(), objects.pop()))); // Store a literal value in a corresponding property QML_STORE_VALUE(StoreFloat, float, instr.value); @@ -420,7 +423,7 @@ QObject *QQmlVME::run(QList<QQmlError> *errors, // Store a literal value in a var property. // We deliberately do not use string converters here - QML_STORE_VAR(StoreVar, QV4::Value::fromReturnedValue(ep->v8engine()->fromVariant(PRIMITIVES.at(instr.value)))); + QML_STORE_VAR(StoreVar, (tmpValue = ep->v8engine()->fromVariant(PRIMITIVES.at(instr.value)))); QML_STORE_VAR(StoreVarInteger, QV4::Primitive::fromInt32(instr.value)); QML_STORE_VAR(StoreVarDouble, QV4::Primitive::fromDouble(instr.value)); QML_STORE_VAR(StoreVarBool, QV4::Primitive::fromBoolean(instr.value)); |