aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlcontextwrapper.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-11 16:28:17 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-18 13:13:33 +0200
commitbdb27b96acbd38531879378c48959a5a1cd60963 (patch)
tree056f2c8c35be97a9564dee5d0ea65bed7265b7ce /src/qml/qml/qqmlcontextwrapper.cpp
parent8d26084ae56ba5aedd73ab733553dbf9cb3eb672 (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.cpp35
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)