aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types/qquickworkerscript.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-11 13:55:01 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-18 13:13:18 +0200
commit1a2a83f80ba4ecc28eba72af57c81bd43a45946c (patch)
treec2e4eb4d9bb57873ca340f6bbbf2342b36c91452 /src/qml/types/qquickworkerscript.cpp
parent826550af450b39f47a3c00ec316acf1e317f12c6 (diff)
Use a ReturnedValue for Managed::call()
Change-Id: Ief2d75e9789dd367c603d90dc0fe5316a0d055e3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/types/qquickworkerscript.cpp')
-rw-r--r--src/qml/types/qquickworkerscript.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/qml/types/qquickworkerscript.cpp b/src/qml/types/qquickworkerscript.cpp
index 26514ac6db..42548e6ad6 100644
--- a/src/qml/types/qquickworkerscript.cpp
+++ b/src/qml/types/qquickworkerscript.cpp
@@ -244,8 +244,10 @@ void QQuickWorkerScriptEnginePrivate::WorkerEngine::init()
QV4::Value QQuickWorkerScriptEnginePrivate::WorkerEngine::sendFunction(int id)
{
QV4::FunctionObject *f = createsend.value().asFunctionObject();
- QV4::Value v = QV4::Value::undefinedValue();
- QV4::ExecutionContext *ctx = f->internalClass->engine->current;
+ QV4::ExecutionContext *ctx = f->engine()->current;
+ QV4::ValueScope scope(ctx->engine);
+
+ QV4::ScopedValue v(scope);
try {
QV4::ScopedCallData callData(m_v4Engine, 1);
callData->args[0] = QV4::Value::fromInt32(id);
@@ -346,10 +348,11 @@ void QQuickWorkerScriptEnginePrivate::processMessage(int id, const QByteArray &d
if (!script)
return;
- QV4::Value value = QV4::Serialize::deserialize(data, workerEngine);
-
QV4::FunctionObject *f = workerEngine->onmessage.value().asFunctionObject();
QV4::ExecutionContext *ctx = f->internalClass->engine->current;
+ QV4::ValueScope scope(ctx);
+
+ QV4::ScopedValue value(scope, QV4::Serialize::deserialize(data, workerEngine));
try {
QV4::ScopedCallData callData(ctx->engine, 2);