Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index 24887a0efb6adba9fc902b813879b695997b7fb9..8f0e243550478d43a2b190e1706edbd5236a41d3 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -330,9 +330,10 @@ bool Object::IsByteArray() { |
} |
-bool Object::IsPixelArray() { |
+bool Object::IsExternalPixelArray() { |
return Object::IsHeapObject() && |
- HeapObject::cast(this)->map()->instance_type() == PIXEL_ARRAY_TYPE; |
+ HeapObject::cast(this)->map()->instance_type() == |
+ EXTERNAL_PIXEL_ARRAY_TYPE; |
} |
@@ -1211,8 +1212,7 @@ ACCESSORS(JSObject, properties, FixedArray, kPropertiesOffset) |
HeapObject* JSObject::elements() { |
Object* array = READ_FIELD(this, kElementsOffset); |
// In the assert below Dictionary is covered under FixedArray. |
- ASSERT(array->IsFixedArray() || array->IsPixelArray() || |
- array->IsExternalArray()); |
+ ASSERT(array->IsFixedArray() || array->IsExternalArray()); |
return reinterpret_cast<HeapObject*>(array); |
} |
@@ -1222,8 +1222,7 @@ void JSObject::set_elements(HeapObject* value, WriteBarrierMode mode) { |
(value->map() == Heap::fixed_array_map() || |
value->map() == Heap::fixed_cow_array_map())); |
// In the assert below Dictionary is covered under FixedArray. |
- ASSERT(value->IsFixedArray() || value->IsPixelArray() || |
- value->IsExternalArray()); |
+ ASSERT(value->IsFixedArray() || value->IsExternalArray()); |
WRITE_FIELD(this, kElementsOffset, value); |
CONDITIONAL_WRITE_BARRIER(this, kElementsOffset, mode); |
} |
@@ -1756,7 +1755,6 @@ CAST_ACCESSOR(JSArray) |
CAST_ACCESSOR(JSRegExp) |
CAST_ACCESSOR(Proxy) |
CAST_ACCESSOR(ByteArray) |
-CAST_ACCESSOR(PixelArray) |
CAST_ACCESSOR(ExternalArray) |
CAST_ACCESSOR(ExternalByteArray) |
CAST_ACCESSOR(ExternalUnsignedByteArray) |
@@ -1765,6 +1763,7 @@ CAST_ACCESSOR(ExternalUnsignedShortArray) |
CAST_ACCESSOR(ExternalIntArray) |
CAST_ACCESSOR(ExternalUnsignedIntArray) |
CAST_ACCESSOR(ExternalFloatArray) |
+CAST_ACCESSOR(ExternalPixelArray) |
CAST_ACCESSOR(Struct) |
@@ -1783,7 +1782,6 @@ HashTable<Shape, Key>* HashTable<Shape, Key>::cast(Object* obj) { |
SMI_ACCESSORS(FixedArray, length, kLengthOffset) |
SMI_ACCESSORS(ByteArray, length, kLengthOffset) |
-INT_ACCESSORS(PixelArray, length, kLengthOffset) |
INT_ACCESSORS(ExternalArray, length, kLengthOffset) |
@@ -2050,28 +2048,21 @@ Address ByteArray::GetDataStartAddress() { |
} |
-uint8_t* PixelArray::external_pointer() { |
- intptr_t ptr = READ_INTPTR_FIELD(this, kExternalPointerOffset); |
- return reinterpret_cast<uint8_t*>(ptr); |
-} |
- |
- |
-void PixelArray::set_external_pointer(uint8_t* value, WriteBarrierMode mode) { |
- intptr_t ptr = reinterpret_cast<intptr_t>(value); |
- WRITE_INTPTR_FIELD(this, kExternalPointerOffset, ptr); |
+uint8_t* ExternalPixelArray::external_pixel_pointer() { |
+ return reinterpret_cast<uint8_t*>(external_pointer()); |
} |
-uint8_t PixelArray::get(int index) { |
+uint8_t ExternalPixelArray::get(int index) { |
ASSERT((index >= 0) && (index < this->length())); |
- uint8_t* ptr = external_pointer(); |
+ uint8_t* ptr = external_pixel_pointer(); |
return ptr[index]; |
} |
-void PixelArray::set(int index, uint8_t value) { |
+void ExternalPixelArray::set(int index, uint8_t value) { |
ASSERT((index >= 0) && (index < this->length())); |
- uint8_t* ptr = external_pointer(); |
+ uint8_t* ptr = external_pixel_pointer(); |
ptr[index] = value; |
} |
@@ -2749,7 +2740,7 @@ MaybeObject* Map::GetSlowElementsMap() { |
} |
-MaybeObject* Map::GetPixelArrayElementsMap() { |
+MaybeObject* Map::GetExternalPixelArrayElementsMap() { |
if (has_pixel_array_elements()) return this; |
// TODO(danno): Special case empty object map (or most common case) |
// to return a pre-canned pixel array map. |
@@ -3479,13 +3470,17 @@ JSObject::ElementsKind JSObject::GetElementsKind() { |
return EXTERNAL_INT_ELEMENTS; |
case EXTERNAL_UNSIGNED_INT_ARRAY_TYPE: |
return EXTERNAL_UNSIGNED_INT_ELEMENTS; |
+ case EXTERNAL_PIXEL_ARRAY_TYPE: |
+ return EXTERNAL_PIXEL_ELEMENTS; |
default: |
ASSERT(array->map()->instance_type() == EXTERNAL_FLOAT_ARRAY_TYPE); |
return EXTERNAL_FLOAT_ELEMENTS; |
} |
} |
- ASSERT(array->IsPixelArray()); |
- return PIXEL_ELEMENTS; |
+ UNREACHABLE(); |
+ // This code is never reached, but some type has to be returned to make the |
+ // compiler happy. |
+ return EXTERNAL_BYTE_ELEMENTS; |
} |
@@ -3499,11 +3494,6 @@ bool JSObject::HasDictionaryElements() { |
} |
-bool JSObject::HasPixelElements() { |
- return GetElementsKind() == PIXEL_ELEMENTS; |
-} |
- |
- |
bool JSObject::HasExternalArrayElements() { |
return (HasExternalByteElements() || |
HasExternalUnsignedByteElements() || |
@@ -3511,7 +3501,13 @@ bool JSObject::HasExternalArrayElements() { |
HasExternalUnsignedShortElements() || |
HasExternalIntElements() || |
HasExternalUnsignedIntElements() || |
- HasExternalFloatElements()); |
+ HasExternalFloatElements() || |
+ HasExternalPixelElements()); |
+} |
+ |
+ |
+bool JSObject::HasExternalPixelElements() { |
+ return GetElementsKind() == EXTERNAL_PIXEL_ELEMENTS; |
} |
@@ -3562,7 +3558,7 @@ bool JSObject::HasIndexedInterceptor() { |
bool JSObject::AllowsSetElementsLength() { |
bool result = elements()->IsFixedArray(); |
- ASSERT(result == (!HasPixelElements() && !HasExternalArrayElements())); |
+ ASSERT(result == !HasExternalArrayElements()); |
return result; |
} |