diff options
author | Lars Knoll <[email protected]> | 2018-09-22 22:07:53 +0200 |
---|---|---|
committer | Lars Knoll <[email protected]> | 2018-09-27 08:34:21 +0000 |
commit | 132c5e7b40ddb69617e016a8030fa5fb2508ce8e (patch) | |
tree | 319f9c2e89c0f1ad857f991fabaa4061f80d45bc /src | |
parent | 20a434faa81059fd2e969e7c372758d2e03da9e6 (diff) |
Get rid of ArrayData::Complex
It's been pretty much unused. ArrayData::Simple does the job.
Change-Id: I0fbd0b7787499244f4c8ca00b3ba7330a6640b75
Reviewed-by: Erik Verbruggen <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/jsruntime/qv4argumentsobject.cpp | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4arraydata.cpp | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4arraydata_p.h | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4arrayobject.cpp | 2 |
4 files changed, 4 insertions, 4 deletions
diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp index c9281ee194..4a21f62cf2 100644 --- a/src/qml/jsruntime/qv4argumentsobject.cpp +++ b/src/qml/jsruntime/qv4argumentsobject.cpp @@ -106,6 +106,8 @@ void ArgumentsObject::fullyCreate() arrayReserve(d()->argCount); arrayPut(0, context()->args(), d()->argCount); + // Use a sparse array, so that method_getElement() doesn't shortcut + initSparseArray(); d()->fullyCreated = true; } diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp index b11521f2d9..654d33b8d1 100644 --- a/src/qml/jsruntime/qv4arraydata.cpp +++ b/src/qml/jsruntime/qv4arraydata.cpp @@ -118,8 +118,6 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt if (d->type() > newType) newType = d->type(); } - if (enforceAttributes && newType == Heap::ArrayData::Simple) - newType = Heap::ArrayData::Complex; while (alloc < requested) alloc *= 2; diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h index 0a034f3106..64b2161ef5 100644 --- a/src/qml/jsruntime/qv4arraydata_p.h +++ b/src/qml/jsruntime/qv4arraydata_p.h @@ -101,7 +101,7 @@ namespace Heap { DECLARE_HEAP_OBJECT(ArrayData, Base) { static void markObjects(Heap::Base *base, MarkStack *stack); - enum Type { Simple = 0, Complex = 1, Sparse = 2, Custom = 3 }; + enum Type { Simple = 0, Sparse = 1, Custom = 2 }; bool isSparse() const { return type == Sparse; } diff --git a/src/qml/jsruntime/qv4arrayobject.cpp b/src/qml/jsruntime/qv4arrayobject.cpp index 1ee1a7a4f7..2e7c994550 100644 --- a/src/qml/jsruntime/qv4arrayobject.cpp +++ b/src/qml/jsruntime/qv4arrayobject.cpp @@ -1106,7 +1106,7 @@ ReturnedValue ArrayPrototype::method_indexOf(const FunctionObject *b, const Valu } else if (!instance->arrayData()) { return Encode(-1); } else { - Q_ASSERT(instance->arrayType() == Heap::ArrayData::Simple || instance->arrayType() == Heap::ArrayData::Complex); + Q_ASSERT(instance->arrayType() == Heap::ArrayData::Simple); Heap::SimpleArrayData *sa = instance->d()->arrayData.cast<Heap::SimpleArrayData>(); if (len > sa->values.size) len = sa->values.size; |