diff options
author | Lars Knoll <[email protected]> | 2013-09-16 22:02:27 +0200 |
---|---|---|
committer | The Qt Project <[email protected]> | 2013-09-22 01:06:20 +0200 |
commit | e441692b0b8f8fffdfdfa8a21c570adcd5cbae7a (patch) | |
tree | 9b764401d87682012328c46dc947721f47b428b2 /src/qml/jsruntime/qv4context.cpp | |
parent | a0f8be4021caa9bb5055923f0eea3bee0e345235 (diff) |
Further work towards an exact GC
Add some more convenience in the helper classes
in qscopedvalue_p.h
Make accesses to CallData safer, and change
ExecutionEngine::newObject() to return a safe
pointer.
Change-Id: I980909754ce9681cf6faa1355bab3a1e5d6dd186
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4context.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4context.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 6a97b9cfab..01cb2dd780 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -64,7 +64,7 @@ CallContext *ExecutionContext::newCallContext(void *stackSpace, FunctionObject * c->function = function; // ### - c->arguments = const_cast<Value *>(callData->args); + c->arguments = const_cast<SafeValue *>(callData->args); c->realArgumentCount = callData->argc; c->argumentCount = callData->argc; c->thisObject = callData->thisObject; @@ -135,7 +135,7 @@ CallContext *ExecutionContext::newCallContext(FunctionObject *function, CallData std::fill(c->locals, c->locals + function->varCount, Value::undefinedValue()); c->argumentCount = qMax((uint)callData->argc, function->formalParameterCount); - c->arguments = c->locals + function->varCount; + c->arguments = static_cast<SafeValue *>(c->locals + function->varCount); if (callData->argc) ::memcpy(c->arguments, callData->args, callData->argc * sizeof(Value)); if (callData->argc < function->formalParameterCount) @@ -182,7 +182,7 @@ void ExecutionContext::createMutableBinding(String *name, bool deletable) if (ctx->type >= Type_CallContext) { CallContext *c = static_cast<CallContext *>(ctx); if (!c->activation) - c->activation = engine->newObject(); + c->activation = engine->newObject()->getPointer(); activation = c->activation; break; } |