From 1a2a83f80ba4ecc28eba72af57c81bd43a45946c Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 11 Sep 2013 13:55:01 +0200 Subject: Use a ReturnedValue for Managed::call() Change-Id: Ief2d75e9789dd367c603d90dc0fe5316a0d055e3 Reviewed-by: Simon Hausmann --- src/qml/jsapi/qjsvalue.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/qml/jsapi') diff --git a/src/qml/jsapi/qjsvalue.cpp b/src/qml/jsapi/qjsvalue.cpp index beff645005..ea5c021231 100644 --- a/src/qml/jsapi/qjsvalue.cpp +++ b/src/qml/jsapi/qjsvalue.cpp @@ -506,6 +506,7 @@ QJSValue QJSValue::call(const QJSValueList &args) ExecutionEngine *engine = d->engine; assert(engine); + ValueScope scope(engine); ScopedCallData callData(engine, args.length()); callData->thisObject = Value::fromObject(engine->globalObject); for (int i = 0; i < args.size(); ++i) { @@ -516,7 +517,7 @@ QJSValue QJSValue::call(const QJSValueList &args) callData->args[i] = args.at(i).d->getValue(engine); } - Value result; + ScopedValue result(scope); QV4::ExecutionContext *ctx = engine->current; try { result = f->call(callData); @@ -556,6 +557,7 @@ QJSValue QJSValue::callWithInstance(const QJSValue &instance, const QJSValueList ExecutionEngine *engine = d->engine; assert(engine); + ValueScope scope(engine); if (!instance.d->checkEngine(engine)) { qWarning("QJSValue::call() failed: cannot call function with thisObject created in a different engine"); @@ -572,7 +574,7 @@ QJSValue QJSValue::callWithInstance(const QJSValue &instance, const QJSValueList callData->args[i] = args.at(i).d->getValue(engine); } - Value result; + ScopedValue result(scope); QV4::ExecutionContext *ctx = engine->current; try { result = f->call(callData); -- cgit v1.2.3