aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4arrayobject.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-01-22 15:25:50 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-24 14:32:33 +0100
commitc53fef423a8f607e1443b1d409712864f8cac9d5 (patch)
tree87d1efbdcf64ecb14fa6980a70fb20ffc994831d /src/qml/jsruntime/qv4arrayobject.cpp
parent6ae57f01bb1495a74b23a81c590672ce788d5400 (diff)
Change virtual methods in ArrayData to take Object pointer
Pass a pointer to the underlying object instead of the ArrayData to virtual methods that modify the arrayData. This prepares for allocating the ArrayData together with the array itself. Change-Id: I66fe187f8b1e4d382ab243a518dbde5f18a1d16d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4arrayobject.cpp')
-rw-r--r--src/qml/jsruntime/qv4arrayobject.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/qml/jsruntime/qv4arrayobject.cpp b/src/qml/jsruntime/qv4arrayobject.cpp
index 8069952d43..9a2407fe2c 100644
--- a/src/qml/jsruntime/qv4arrayobject.cpp
+++ b/src/qml/jsruntime/qv4arrayobject.cpp
@@ -72,7 +72,7 @@ ReturnedValue ArrayCtor::construct(Managed *m, CallData *callData)
} else {
len = callData->argc;
a->arrayReserve(len);
- a->arrayData->put(0, callData->args, len);
+ a->arrayPut(0, callData->args, len);
}
a->setArrayLengthUnchecked(len);
@@ -305,7 +305,8 @@ ReturnedValue ArrayPrototype::method_push(CallContext *ctx)
if (!ctx->callData->argc) {
;
} else if (!instance->protoHasArray() && instance->arrayData->length() <= len) {
- len = instance->arrayData->push_back(len, ctx->callData->argc, ctx->callData->args);
+ instance->arrayData->vtable()->putArray(instance.getPointer(), len, ctx->callData->args, ctx->callData->argc);
+ len = instance->arrayData->length();
} else {
for (int i = 0; i < ctx->callData->argc; ++i)
instance->putIndexed(len + i, ctx->callData->args[i]);
@@ -371,7 +372,7 @@ ReturnedValue ArrayPrototype::method_shift(CallContext *ctx)
ScopedValue result(scope);
if (!instance->protoHasArray() && !instance->arrayData->hasAttributes() && instance->arrayData->length() <= len) {
- result = instance->arrayData->pop_front();
+ result = instance->arrayData->vtable()->pop_front(instance.getPointer());
} else {
result = instance->getIndexed(0);
if (scope.hasException())
@@ -485,7 +486,7 @@ ReturnedValue ArrayPrototype::method_splice(CallContext *ctx)
if (scope.hasException())
return Encode::undefined();
if (exists)
- newArray->arrayData->put(i, v);
+ newArray->arrayPut(i, v);
}
newArray->setArrayLengthUnchecked(deleteCount);
@@ -550,7 +551,7 @@ ReturnedValue ArrayPrototype::method_unshift(CallContext *ctx)
uint len = instance->getLength();
if (!instance->protoHasArray() && !instance->arrayData->hasAttributes() && instance->arrayData->length() <= len) {
- instance->arrayData->push_front(ctx->callData->args, ctx->callData->argc);
+ instance->arrayData->vtable()->push_front(instance.getPointer(), ctx->callData->args, ctx->callData->argc);
} else {
ScopedValue v(scope);
for (uint k = len; k > 0; --k) {