diff options
author | Lars Knoll <[email protected]> | 2013-09-05 13:22:23 +0200 |
---|---|---|
committer | The Qt Project <[email protected]> | 2013-09-11 13:01:50 +0200 |
commit | 6e8e5d16e16d6ee683a5c06a24f8f202ed5239ff (patch) | |
tree | fa8e710ad0ee4ff6cc9738fa717883c74d452b95 /src/qml/jsruntime/qv4context.cpp | |
parent | 736afb8e9b3694efb8ca1fa8f3a8eeeaef530da2 (diff) |
Move CallData onto the JS stack
Change-Id: I22e853acfd2da337344b581bb0412c5f9930c510
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4context.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4context.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 29fdc333f8..0ad245f8fc 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -63,7 +63,8 @@ CallContext *ExecutionContext::newCallContext(void *stackSpace, FunctionObject * c->initBaseContext(Type_CallContext, engine, this); c->function = function; - c->arguments = d.args; + // ### + c->arguments = const_cast<Value *>(d.args); c->realArgumentCount = d.argc; c->argumentCount = d.argc; c->thisObject = d.thisObject; @@ -109,9 +110,7 @@ CallContext *ExecutionContext::newCallContext(FunctionObject *function, const Ca c->initBaseContext(Type_CallContext, engine, this); c->function = function; - c->arguments = d.args; c->realArgumentCount = d.argc; - c->argumentCount = d.argc; c->thisObject = d.thisObject; c->strictMode = function->strictMode; @@ -138,7 +137,7 @@ CallContext *ExecutionContext::newCallContext(FunctionObject *function, const Ca c->argumentCount = qMax((uint)d.argc, function->formalParameterCount); c->arguments = c->locals + function->varCount; if (d.argc) - ::memcpy(c->arguments, d.args, c->realArgumentCount * sizeof(Value)); + ::memcpy(c->arguments, d.args, d.argc * sizeof(Value)); if (d.argc < function->formalParameterCount) std::fill(c->arguments + d.argc, c->arguments + function->formalParameterCount, Value::undefinedValue()); |