diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-09-13 21:54:21 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-18 13:14:10 +0200 |
commit | e4e90923c93adfafb23c81be7359e8df2a500b4f (patch) | |
tree | 36be927b72606c4f37326089ff3c6261f484c92b /src/qml/qml/qqmlvaluetypewrapper.cpp | |
parent | 9dcc12d52343960400192c817f54a16f7e1f8247 (diff) |
Convert some methods to use Returned<>
Change-Id: I631606cb5ab3b35b72104e70092a5200dd235fbc
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlvaluetypewrapper.cpp')
-rw-r--r-- | src/qml/qml/qqmlvaluetypewrapper.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/qml/qml/qqmlvaluetypewrapper.cpp b/src/qml/qml/qqmlvaluetypewrapper.cpp index 88704d58b3..f89ce15a57 100644 --- a/src/qml/qml/qqmlvaluetypewrapper.cpp +++ b/src/qml/qml/qqmlvaluetypewrapper.cpp @@ -327,14 +327,15 @@ ReturnedValue QmlValueTypeWrapper::get(Managed *m, String *name, bool *hasProper void QmlValueTypeWrapper::put(Managed *m, String *name, const Value &value) { - QmlValueTypeWrapper *r = m->as<QmlValueTypeWrapper>(); ExecutionEngine *v4 = m->engine(); + Scope scope(v4); + Scoped<QmlValueTypeWrapper> r(scope, m->as<QmlValueTypeWrapper>()); if (!r) v4->current->throwTypeError(); QByteArray propName = name->toQString().toUtf8(); if (r->objectType == QmlValueTypeWrapper::Reference) { - QmlValueTypeReference *reference = static_cast<QmlValueTypeReference *>(r); + QmlValueTypeReference *reference = static_cast<QmlValueTypeReference *>(r.getPointer()); QMetaProperty writebackProperty = reference->object->metaObject()->property(reference->property); if (!reference->object || !writebackProperty.isWritable() || !readReferenceValue(reference)) @@ -353,7 +354,8 @@ void QmlValueTypeWrapper::put(Managed *m, String *name, const Value &value) if (!f->bindingKeyFlag) { // assigning a JS function to a non-var-property is not allowed. QString error = QLatin1String("Cannot assign JavaScript function to value-type property"); - v4->current->throwError(r->v8->toString(error)); + Scoped<String> e(scope, r->v8->toString(error)); + v4->current->throwError(e); } QQmlContextData *context = r->v8->callingContext(); @@ -400,7 +402,7 @@ void QmlValueTypeWrapper::put(Managed *m, String *name, const Value &value) } else { Q_ASSERT(r->objectType == QmlValueTypeWrapper::Copy); - QmlValueTypeCopy *copy = static_cast<QmlValueTypeCopy *>(r); + QmlValueTypeCopy *copy = static_cast<QmlValueTypeCopy *>(r.getPointer()); int index = r->type->metaObject()->indexOfProperty(propName.constData()); if (index == -1) |