aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4argumentsobject.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-25 10:09:26 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-28 13:33:08 +0200
commit0f2cf9074d4f0220f5c707eed478f99334814789 (patch)
tree685ea2295b8728b3545523e2625a4cf65f39b9ee /src/qml/jsruntime/qv4argumentsobject.cpp
parent1ef957834bf9040ccd001fa6d80e483b9b21452c (diff)
Fix CallContext to not hold arguments on the C stack anymore
Change-Id: I35f46cce4f243d4b8b2bac9244f8fc26836f413b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4argumentsobject.cpp')
-rw-r--r--src/qml/jsruntime/qv4argumentsobject.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp
index be4fbe60b8..34ccd0af49 100644
--- a/src/qml/jsruntime/qv4argumentsobject.cpp
+++ b/src/qml/jsruntime/qv4argumentsobject.cpp
@@ -64,28 +64,28 @@ ArgumentsObject::ArgumentsObject(CallContext *context)
memberData[CalleePropertyIndex] = pd;
memberData[CallerPropertyIndex] = pd;
- arrayReserve(context->argumentCount);
- for (unsigned int i = 0; i < context->argumentCount; ++i)
- arrayData[i].value = context->arguments[i];
- arrayDataLen = context->argumentCount;
+ arrayReserve(context->callData->argc);
+ for (unsigned int i = 0; i < context->callData->argc; ++i)
+ arrayData[i].value = context->callData->args[i];
+ arrayDataLen = context->callData->argc;
} else {
internalClass = engine()->argumentsObjectClass;
Q_ASSERT(CalleePropertyIndex == internalClass->find(context->engine->id_callee));
memberData[CalleePropertyIndex].value = Value::fromObject(context->function);
isNonStrictArgumentsObject = true;
- uint numAccessors = qMin(context->function->formalParameterCount, context->realArgumentCount);
- uint argCount = qMin((uint)context->realArgumentCount, context->argumentCount);
+ uint numAccessors = qMin((int)context->function->formalParameterCount, context->realArgumentCount);
+ uint argCount = qMin(context->realArgumentCount, context->callData->argc);
arrayReserve(argCount);
ensureArrayAttributes();
context->engine->requireArgumentsAccessors(numAccessors);
for (uint i = 0; i < (uint)numAccessors; ++i) {
- mappedArguments.append(context->arguments[i]);
+ mappedArguments.append(context->callData->args[i]);
arrayData[i] = context->engine->argumentsAccessors.at(i);
arrayAttributes[i] = Attr_Accessor;
}
for (uint i = numAccessors; i < argCount; ++i) {
- arrayData[i] = Property::fromValue(context->arguments[i]);
+ arrayData[i] = Property::fromValue(context->callData->args[i]);
arrayAttributes[i] = Attr_Data;
}
arrayDataLen = argCount;
@@ -155,7 +155,7 @@ ReturnedValue ArgumentsGetterFunction::call(Managed *getter, CallData *callData)
if (!o)
getter->engine()->current->throwTypeError();
- assert(g->index < o->context->argumentCount);
+ assert(g->index < o->context->callData->argc);
return o->context->argument(g->index);
}
@@ -171,8 +171,8 @@ ReturnedValue ArgumentsSetterFunction::call(Managed *setter, CallData *callData)
if (!o)
setter->engine()->current->throwTypeError();
- assert(s->index < o->context->argumentCount);
- o->context->arguments[s->index] = callData->argc ? callData->args[0] : Value::undefinedValue();
+ assert(s->index < o->context->callData->argc);
+ o->context->callData->args[s->index] = callData->argc ? callData->args[0] : Value::undefinedValue();
return Value::undefinedValue().asReturnedValue();
}