diff options
author | Lars Knoll <[email protected]> | 2014-01-22 15:25:50 +0100 |
---|---|---|
committer | The Qt Project <[email protected]> | 2014-01-24 14:32:33 +0100 |
commit | c53fef423a8f607e1443b1d409712864f8cac9d5 (patch) | |
tree | 87d1efbdcf64ecb14fa6980a70fb20ffc994831d /src/qml/jsruntime/qv4arrayobject.cpp | |
parent | 6ae57f01bb1495a74b23a81c590672ce788d5400 (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 <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4arrayobject.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4arrayobject.cpp | 11 |
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) { |