diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-09-11 16:28:17 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-18 13:13:33 +0200 |
commit | bdb27b96acbd38531879378c48959a5a1cd60963 (patch) | |
tree | 056f2c8c35be97a9564dee5d0ea65bed7265b7ce /src/qml/qml/qqmlcontextwrapper.cpp | |
parent | 8d26084ae56ba5aedd73ab733553dbf9cb3eb672 (diff) |
Use ReturnedValue for Managed::get().
Change-Id: Ia8f35d227b69d32e1f6a041283abbbd083aa34ca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlcontextwrapper.cpp')
-rw-r--r-- | src/qml/qml/qqmlcontextwrapper.cpp | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/qml/qml/qqmlcontextwrapper.cpp b/src/qml/qml/qqmlcontextwrapper.cpp index bd0b211403..f84f288770 100644 --- a/src/qml/qml/qqmlcontextwrapper.cpp +++ b/src/qml/qml/qqmlcontextwrapper.cpp @@ -124,21 +124,22 @@ void QmlContextWrapper::takeContextOwnership(const Value &qmlglobal) } -Value QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty) +ReturnedValue QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty) { - QmlContextWrapper *resource = m->as<QmlContextWrapper>(); QV4::ExecutionEngine *v4 = m->engine(); + QV4::Scope scope(v4); + QmlContextWrapper *resource = m->as<QmlContextWrapper>(); if (!resource) v4->current->throwTypeError(); // In V8 the JS global object would come _before_ the QML global object, // so simulate that here. bool hasProp; - QV4::Value result = v4->globalObject->get(name, &hasProp); + QV4::ScopedValue result(scope, v4->globalObject->get(name, &hasProp)); if (hasProp) { if (hasProperty) *hasProperty = hasProp; - return result; + return result.asReturnedValue(); } if (resource->isNullWrapper) @@ -151,7 +152,7 @@ Value QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty) if (hasProp) { if (hasProperty) *hasProperty = hasProp; - return result; + return result.asReturnedValue(); } // Its possible we could delay the calculation of the "actual" context (in the case @@ -162,7 +163,7 @@ Value QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty) if (!context) { if (hasProperty) *hasProperty = true; - return result; + return result.asReturnedValue(); } // Search type (attached property/enum/imported scripts) names @@ -187,13 +188,13 @@ Value QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty) if (r.scriptIndex != -1) { int index = r.scriptIndex; if (index < context->importedScripts.count()) - return context->importedScripts.at(index).value(); + return context->importedScripts.at(index).value().asReturnedValue(); else - return QV4::Value::undefinedValue(); + return QV4::Value::undefinedValue().asReturnedValue(); } else if (r.type) { - return QmlTypeWrapper::create(engine, scopeObject, r.type); + return QmlTypeWrapper::create(engine, scopeObject, r.type).asReturnedValue(); } else if (r.importNamespace) { - return QmlTypeWrapper::create(engine, scopeObject, context->imports, r.importNamespace); + return QmlTypeWrapper::create(engine, scopeObject, context->imports, r.importNamespace).asReturnedValue(); } Q_ASSERT(!"Unreachable"); } @@ -215,7 +216,7 @@ Value QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty) ep->captureProperty(&context->idValues[propertyIdx].bindings); if (hasProperty) *hasProperty = true; - return QV4::QObjectWrapper::wrap(v4, context->idValues[propertyIdx]); + return QV4::QObjectWrapper::wrap(v4, context->idValues[propertyIdx]).asReturnedValue(); } else { QQmlContextPrivate *cp = context->asQQmlContextPrivate(); @@ -230,9 +231,9 @@ Value QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty) QQmlListProperty<QObject> prop(context->asQQmlContext(), (void*) qintptr(propertyIdx), QQmlContextPrivate::context_count, QQmlContextPrivate::context_at); - return QmlListWrapper::create(engine, prop, qMetaTypeId<QQmlListProperty<QObject> >()); + return QmlListWrapper::create(engine, prop, qMetaTypeId<QQmlListProperty<QObject> >()).asReturnedValue(); } else { - return engine->fromVariant(cp->propertyValues.at(propertyIdx)); + return engine->fromVariant(cp->propertyValues.at(propertyIdx)).asReturnedValue(); } } } @@ -245,7 +246,7 @@ Value QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty) if (hasProp) { if (hasProperty) *hasProperty = true; - return result; + return result.asReturnedValue(); } } scopeObject = 0; @@ -254,11 +255,11 @@ Value QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty) // Search context object if (context->contextObject) { bool hasProp = false; - QV4::Value result = QV4::QObjectWrapper::getQmlProperty(v4->current, context, context->contextObject, name, QV4::QObjectWrapper::CheckRevision, &hasProp); + result = QV4::QObjectWrapper::getQmlProperty(v4->current, context, context->contextObject, name, QV4::QObjectWrapper::CheckRevision, &hasProp); if (hasProp) { if (hasProperty) *hasProperty = true; - return result; + return result.asReturnedValue(); } } @@ -267,7 +268,7 @@ Value QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty) expressionContext->unresolvedNames = true; - return Value::undefinedValue(); + return Value::undefinedValue().asReturnedValue(); } void QmlContextWrapper::put(Managed *m, String *name, const Value &value) |