aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlvaluetypewrapper.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-13 21:54:21 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-18 13:14:10 +0200
commite4e90923c93adfafb23c81be7359e8df2a500b4f (patch)
tree36be927b72606c4f37326089ff3c6261f484c92b /src/qml/qml/qqmlvaluetypewrapper.cpp
parent9dcc12d52343960400192c817f54a16f7e1f8247 (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.cpp10
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)