| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index c85a69c00979705a0d306e3f4e08ebf99d801fa4..2a22ade9686affa3fa50c31d124d78d4590af546 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -62,17 +62,8 @@
|
| // - JSMessageObject
|
| // - JSProxy
|
| // - JSFunctionProxy
|
| -// - ByteArray
|
| -// - ExternalArray
|
| -// - ExternalPixelArray
|
| -// - ExternalByteArray
|
| -// - ExternalUnsignedByteArray
|
| -// - ExternalShortArray
|
| -// - ExternalUnsignedShortArray
|
| -// - ExternalIntArray
|
| -// - ExternalUnsignedIntArray
|
| -// - ExternalFloatArray
|
| // - FixedArrayBase
|
| +// - ByteArray
|
| // - FixedArray
|
| // - DescriptorArray
|
| // - HashTable
|
| @@ -85,6 +76,15 @@
|
| // - JSFunctionResultCache
|
| // - SerializedScopeInfo
|
| // - FixedDoubleArray
|
| +// - ExternalArray
|
| +// - ExternalPixelArray
|
| +// - ExternalByteArray
|
| +// - ExternalUnsignedByteArray
|
| +// - ExternalShortArray
|
| +// - ExternalUnsignedShortArray
|
| +// - ExternalIntArray
|
| +// - ExternalUnsignedIntArray
|
| +// - ExternalFloatArray
|
| // - String
|
| // - SeqString
|
| // - SeqAsciiString
|
| @@ -2084,6 +2084,7 @@ class FixedArrayBase: public HeapObject {
|
| static const int kHeaderSize = kLengthOffset + kPointerSize;
|
| };
|
|
|
| +
|
| class FixedDoubleArray;
|
|
|
| // FixedArray describes fixed-sized arrays with element type Object*.
|
| @@ -3053,12 +3054,8 @@ class NormalizedMapCache: public FixedArray {
|
| // ByteArray represents fixed sized byte arrays. Used by the outside world,
|
| // such as PCRE, and also by the memory allocator and garbage collector to
|
| // fill in free blocks in the heap.
|
| -class ByteArray: public HeapObject {
|
| +class ByteArray: public FixedArrayBase {
|
| public:
|
| - // [length]: length of the array.
|
| - inline int length();
|
| - inline void set_length(int value);
|
| -
|
| // Setter and getter.
|
| inline byte get(int index);
|
| inline void set(int index, byte value);
|
| @@ -3103,10 +3100,6 @@ class ByteArray: public HeapObject {
|
| #endif
|
|
|
| // Layout description.
|
| - // Length is smi tagged when it is stored.
|
| - static const int kLengthOffset = HeapObject::kHeaderSize;
|
| - static const int kHeaderSize = kLengthOffset + kPointerSize;
|
| -
|
| static const int kAlignedSize = OBJECT_POINTER_ALIGN(kHeaderSize);
|
|
|
| // Maximal memory consumption for a single ByteArray.
|
| @@ -3130,11 +3123,8 @@ class ByteArray: public HeapObject {
|
| // Out-of-range values passed to the setter are converted via a C
|
| // cast, not clamping. Out-of-range indices cause exceptions to be
|
| // raised rather than being silently ignored.
|
| -class ExternalArray: public HeapObject {
|
| +class ExternalArray: public FixedArrayBase {
|
| public:
|
| - // [length]: length of the array.
|
| - inline int length();
|
| - inline void set_length(int value);
|
|
|
| inline bool is_the_hole(int index) { return false; }
|
|
|
| @@ -3149,9 +3139,8 @@ class ExternalArray: public HeapObject {
|
| static const int kMaxLength = 0x3fffffff;
|
|
|
| // ExternalArray headers are not quadword aligned.
|
| - static const int kLengthOffset = HeapObject::kHeaderSize;
|
| static const int kExternalPointerOffset =
|
| - POINTER_SIZE_ALIGN(kLengthOffset + kIntSize);
|
| + POINTER_SIZE_ALIGN(FixedArrayBase::kLengthOffset + kPointerSize);
|
| static const int kHeaderSize = kExternalPointerOffset + kPointerSize;
|
| static const int kAlignedSize = OBJECT_POINTER_ALIGN(kHeaderSize);
|
|
|
|
|