Index: runtime/vm/raw_object.h |
=================================================================== |
--- runtime/vm/raw_object.h (revision 15794) |
+++ runtime/vm/raw_object.h (working copy) |
@@ -63,6 +63,7 @@ |
V(ByteArray) \ |
V(Int8Array) \ |
V(Uint8Array) \ |
+ V(Uint8ClampedArray) \ |
V(Int16Array) \ |
V(Uint16Array) \ |
V(Int32Array) \ |
@@ -73,6 +74,7 @@ |
V(Float64Array) \ |
V(ExternalInt8Array) \ |
V(ExternalUint8Array) \ |
+ V(ExternalUint8ClampedArray) \ |
V(ExternalInt16Array) \ |
V(ExternalUint16Array) \ |
V(ExternalInt32Array) \ |
@@ -1269,11 +1271,17 @@ |
class RawUint8Array : public RawByteArray { |
RAW_HEAP_OBJECT_IMPLEMENTATION(Uint8Array); |
+ protected: |
// Variable length data follows here. |
uint8_t data_[0]; |
}; |
+class RawUint8ClampedArray : public RawUint8Array { |
+ RAW_HEAP_OBJECT_IMPLEMENTATION(Uint8ClampedArray); |
+}; |
+ |
+ |
class RawInt16Array : public RawByteArray { |
RAW_HEAP_OBJECT_IMPLEMENTATION(Int16Array); |
@@ -1384,6 +1392,7 @@ |
class RawExternalUint8Array : public RawByteArray { |
RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalUint8Array); |
+ protected: |
ExternalByteArrayData<uint8_t>* external_data_; |
friend class TokenStream; |
@@ -1391,6 +1400,11 @@ |
}; |
+class RawExternalUint8ClampedArray : public RawExternalUint8Array { |
+ RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalUint8ClampedArray); |
+}; |
+ |
+ |
class RawExternalInt16Array : public RawByteArray { |
RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalInt16Array); |
@@ -1604,40 +1618,43 @@ |
// Make sure this function is updated when new ByteArray types are added. |
ASSERT(kInt8ArrayCid == kByteArrayCid + 1 && |
kUint8ArrayCid == kByteArrayCid + 2 && |
- kInt16ArrayCid == kByteArrayCid + 3 && |
- kUint16ArrayCid == kByteArrayCid + 4 && |
- kInt32ArrayCid == kByteArrayCid + 5 && |
- kUint32ArrayCid == kByteArrayCid + 6 && |
- kInt64ArrayCid == kByteArrayCid + 7 && |
- kUint64ArrayCid == kByteArrayCid + 8 && |
- kFloat32ArrayCid == kByteArrayCid + 9 && |
- kFloat64ArrayCid == kByteArrayCid + 10 && |
- kExternalInt8ArrayCid == kByteArrayCid + 11 && |
- kExternalUint8ArrayCid == kByteArrayCid + 12 && |
- kExternalInt16ArrayCid == kByteArrayCid + 13 && |
- kExternalUint16ArrayCid == kByteArrayCid + 14 && |
- kExternalInt32ArrayCid == kByteArrayCid + 15 && |
- kExternalUint32ArrayCid == kByteArrayCid + 16 && |
- kExternalInt64ArrayCid == kByteArrayCid + 17 && |
- kExternalUint64ArrayCid == kByteArrayCid + 18 && |
- kExternalFloat32ArrayCid == kByteArrayCid + 19 && |
- kExternalFloat64ArrayCid == kByteArrayCid + 20 && |
- kStacktraceCid == kByteArrayCid + 21); |
+ kUint8ClampedArrayCid == kByteArrayCid + 3 && |
+ kInt16ArrayCid == kByteArrayCid + 4 && |
+ kUint16ArrayCid == kByteArrayCid + 5 && |
+ kInt32ArrayCid == kByteArrayCid + 6 && |
+ kUint32ArrayCid == kByteArrayCid + 7 && |
+ kInt64ArrayCid == kByteArrayCid + 8 && |
+ kUint64ArrayCid == kByteArrayCid + 9 && |
+ kFloat32ArrayCid == kByteArrayCid + 10 && |
+ kFloat64ArrayCid == kByteArrayCid + 11 && |
+ kExternalInt8ArrayCid == kByteArrayCid + 12 && |
+ kExternalUint8ArrayCid == kByteArrayCid + 13 && |
+ kExternalUint8ClampedArrayCid == kByteArrayCid + 14 && |
+ kExternalInt16ArrayCid == kByteArrayCid + 15 && |
+ kExternalUint16ArrayCid == kByteArrayCid + 16 && |
+ kExternalInt32ArrayCid == kByteArrayCid + 17 && |
+ kExternalUint32ArrayCid == kByteArrayCid + 18 && |
+ kExternalInt64ArrayCid == kByteArrayCid + 19 && |
+ kExternalUint64ArrayCid == kByteArrayCid + 20 && |
+ kExternalFloat32ArrayCid == kByteArrayCid + 21 && |
+ kExternalFloat64ArrayCid == kByteArrayCid + 22 && |
+ kStacktraceCid == kByteArrayCid + 23); |
return (index >= kByteArrayCid && index <= kExternalFloat64ArrayCid); |
} |
inline bool RawObject::IsExternalByteArrayClassId(intptr_t index) { |
// Make sure this function is updated when new ByteArray types are added. |
ASSERT(kExternalUint8ArrayCid == kExternalInt8ArrayCid + 1 && |
- kExternalInt16ArrayCid == kExternalInt8ArrayCid + 2 && |
- kExternalUint16ArrayCid == kExternalInt8ArrayCid + 3 && |
- kExternalInt32ArrayCid == kExternalInt8ArrayCid + 4 && |
- kExternalUint32ArrayCid == kExternalInt8ArrayCid + 5 && |
- kExternalInt64ArrayCid == kExternalInt8ArrayCid + 6 && |
- kExternalUint64ArrayCid == kExternalInt8ArrayCid + 7 && |
- kExternalFloat32ArrayCid == kExternalInt8ArrayCid + 8 && |
- kExternalFloat64ArrayCid == kExternalInt8ArrayCid + 9 && |
- kStacktraceCid == kExternalInt8ArrayCid + 10); |
+ kExternalUint8ClampedArrayCid == kExternalInt8ArrayCid + 2 && |
+ kExternalInt16ArrayCid == kExternalInt8ArrayCid + 3 && |
+ kExternalUint16ArrayCid == kExternalInt8ArrayCid + 4 && |
+ kExternalInt32ArrayCid == kExternalInt8ArrayCid + 5 && |
+ kExternalUint32ArrayCid == kExternalInt8ArrayCid + 6 && |
+ kExternalInt64ArrayCid == kExternalInt8ArrayCid + 7 && |
+ kExternalUint64ArrayCid == kExternalInt8ArrayCid + 8 && |
+ kExternalFloat32ArrayCid == kExternalInt8ArrayCid + 9 && |
+ kExternalFloat64ArrayCid == kExternalInt8ArrayCid + 10 && |
+ kStacktraceCid == kExternalInt8ArrayCid + 11); |
return (index >= kExternalInt8ArrayCid && index <= kExternalFloat64ArrayCid); |
} |