aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types/qquickworkerscript.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-11 14:36:01 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-18 13:13:21 +0200
commit002e6105f61269f1474de878ccdb26205e5b226e (patch)
treeead1d10b7d8aa2537e7073327d9d0d9ce591c995 /src/qml/types/qquickworkerscript.cpp
parent1a2a83f80ba4ecc28eba72af57c81bd43a45946c (diff)
Require a ValueScope for ScopedCallData as well
This brings things more in line with ScopedValue, and also simplifies cleanup of Scoped values. Change-Id: If5f1466b4e13c629d56c1e7c638937f61ba48f77 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/types/qquickworkerscript.cpp')
-rw-r--r--src/qml/types/qquickworkerscript.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/qml/types/qquickworkerscript.cpp b/src/qml/types/qquickworkerscript.cpp
index 42548e6ad6..481bc110e8 100644
--- a/src/qml/types/qquickworkerscript.cpp
+++ b/src/qml/types/qquickworkerscript.cpp
@@ -228,13 +228,14 @@ void QQuickWorkerScriptEnginePrivate::WorkerEngine::init()
"}); "\
"})"
+ QV4::ValueScope scope(m_v4Engine);
onmessage = QV4::Script(m_v4Engine->rootContext, CALL_ONMESSAGE_SCRIPT).run();
QV4::Script createsendscript(m_v4Engine->rootContext, SEND_MESSAGE_CREATE_SCRIPT);
QV4::FunctionObject *createsendconstructor = createsendscript.run().asFunctionObject();
QV4::Value function = QV4::Value::fromObject(m_v4Engine->newBuiltinFunction(m_v4Engine->rootContext, m_v4Engine->newString(QStringLiteral("sendMessage")),
QQuickWorkerScriptEnginePrivate::sendMessage));
- QV4::ScopedCallData callData(m_v4Engine, 1);
+ QV4::ScopedCallData callData(scope, 1);
callData->args[0] = function;
callData->thisObject = global();
createsend = createsendconstructor->call(callData);
@@ -249,7 +250,7 @@ QV4::Value QQuickWorkerScriptEnginePrivate::WorkerEngine::sendFunction(int id)
QV4::ScopedValue v(scope);
try {
- QV4::ScopedCallData callData(m_v4Engine, 1);
+ QV4::ScopedCallData callData(scope, 1);
callData->args[0] = QV4::Value::fromInt32(id);
callData->thisObject = global();
v = f->call(callData);
@@ -355,7 +356,7 @@ void QQuickWorkerScriptEnginePrivate::processMessage(int id, const QByteArray &d
QV4::ScopedValue value(scope, QV4::Serialize::deserialize(data, workerEngine));
try {
- QV4::ScopedCallData callData(ctx->engine, 2);
+ QV4::ScopedCallData callData(scope, 2);
callData->thisObject = workerEngine->global();
callData->args[0] = script->object.value();
callData->args[1] = value;