Index: runtime/vm/raw_object.cc |
diff --git a/runtime/vm/raw_object.cc b/runtime/vm/raw_object.cc |
index 9b9adcce78cf58ebc4c1484187ed0d2ac9e68839..a630398fb833413016de37d112400f8821f5efe9 100644 |
--- a/runtime/vm/raw_object.cc |
+++ b/runtime/vm/raw_object.cc |
@@ -123,11 +123,74 @@ intptr_t RawObject::SizeFromClass() const { |
instance_size = Array::InstanceSize(array_length); |
break; |
} |
- case kInternalByteArray: { |
- const RawInternalByteArray* raw_byte_array = |
- reinterpret_cast<const RawInternalByteArray*>(this); |
+ case kInt8Array: { |
+ const RawInt8Array* raw_byte_array = |
+ reinterpret_cast<const RawInt8Array*>(this); |
intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
- instance_size = InternalByteArray::InstanceSize(byte_array_length); |
+ instance_size = Int8Array::InstanceSize(byte_array_length); |
+ break; |
+ } |
+ case kUint8Array: { |
+ const RawUint8Array* raw_byte_array = |
+ reinterpret_cast<const RawUint8Array*>(this); |
+ intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
+ instance_size = Uint8Array::InstanceSize(byte_array_length); |
+ break; |
+ } |
+ case kInt16Array: { |
+ const RawInt16Array* raw_byte_array = |
+ reinterpret_cast<const RawInt16Array*>(this); |
+ intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
+ instance_size = Int16Array::InstanceSize(byte_array_length); |
+ break; |
+ } |
+ case kUint16Array: { |
+ const RawUint16Array* raw_byte_array = |
+ reinterpret_cast<const RawUint16Array*>(this); |
+ intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
+ instance_size = Uint16Array::InstanceSize(byte_array_length); |
+ break; |
+ } |
+ case kInt32Array: { |
+ const RawInt32Array* raw_byte_array = |
+ reinterpret_cast<const RawInt32Array*>(this); |
+ intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
+ instance_size = Int32Array::InstanceSize(byte_array_length); |
+ break; |
+ } |
+ case kUint32Array: { |
+ const RawUint32Array* raw_byte_array = |
+ reinterpret_cast<const RawUint32Array*>(this); |
+ intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
+ instance_size = Uint32Array::InstanceSize(byte_array_length); |
+ break; |
+ } |
+ case kInt64Array: { |
+ const RawInt64Array* raw_byte_array = |
+ reinterpret_cast<const RawInt64Array*>(this); |
+ intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
+ instance_size = Int64Array::InstanceSize(byte_array_length); |
+ break; |
+ } |
+ case kUint64Array: { |
+ const RawUint64Array* raw_byte_array = |
+ reinterpret_cast<const RawUint64Array*>(this); |
+ intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
+ instance_size = Uint64Array::InstanceSize(byte_array_length); |
+ break; |
+ } |
+ case kFloat32Array: { |
+ const RawFloat32Array* raw_byte_array = |
+ reinterpret_cast<const RawFloat32Array*>(this); |
+ intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
+ instance_size = Float32Array::InstanceSize(byte_array_length); |
+ break; |
+ } |
+ case kFloat64Array: { |
+ const RawFloat64Array* raw_byte_array = |
+ reinterpret_cast<const RawFloat64Array*>(this); |
+ intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
+ instance_size = Float64Array::InstanceSize(byte_array_length); |
break; |
} |
case kTypeArguments: { |
@@ -668,22 +731,193 @@ intptr_t RawByteArray::VisitByteArrayPointers(RawByteArray* raw_obj, |
} |
-intptr_t RawInternalByteArray::VisitInternalByteArrayPointers( |
- RawInternalByteArray* raw_obj, ObjectPointerVisitor* visitor) { |
+intptr_t RawInt8Array::VisitInt8ArrayPointers( |
+ RawInt8Array *raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return Int8Array::InstanceSize(length); |
+} |
+ |
+ |
+intptr_t RawUint8Array::VisitUint8ArrayPointers( |
+ RawUint8Array *raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return Uint8Array::InstanceSize(length); |
+} |
+ |
+ |
+intptr_t RawInt16Array::VisitInt16ArrayPointers( |
+ RawInt16Array *raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return Int16Array::InstanceSize(length); |
+} |
+ |
+ |
+intptr_t RawUint16Array::VisitUint16ArrayPointers( |
+ RawUint16Array *raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return Uint16Array::InstanceSize(length); |
+} |
+ |
+ |
+intptr_t RawInt32Array::VisitInt32ArrayPointers( |
+ RawInt32Array *raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return Int32Array::InstanceSize(length); |
+} |
+ |
+ |
+intptr_t RawUint32Array::VisitUint32ArrayPointers( |
+ RawUint32Array *raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return Uint32Array::InstanceSize(length); |
+} |
+ |
+ |
+intptr_t RawInt64Array::VisitInt64ArrayPointers( |
+ RawInt64Array *raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return Int64Array::InstanceSize(length); |
+} |
+ |
+ |
+intptr_t RawUint64Array::VisitUint64ArrayPointers( |
+ RawUint64Array *raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return Uint64Array::InstanceSize(length); |
+} |
+ |
+ |
+intptr_t RawFloat32Array::VisitFloat32ArrayPointers( |
+ RawFloat32Array *raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return Float32Array::InstanceSize(length); |
+} |
+ |
+ |
+intptr_t RawFloat64Array::VisitFloat64ArrayPointers( |
+ RawFloat64Array *raw_obj, ObjectPointerVisitor* visitor) { |
// Make sure that we got here with the tagged pointer as this. |
ASSERT(raw_obj->IsHeapObject()); |
intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
- return InternalByteArray::InstanceSize(length); |
+ return Float64Array::InstanceSize(length); |
+} |
+ |
+ |
+intptr_t RawExternalInt8Array::VisitExternalInt8ArrayPointers( |
+ RawExternalInt8Array* raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return ExternalInt8Array::InstanceSize(); |
+} |
+ |
+ |
+intptr_t RawExternalUint8Array::VisitExternalUint8ArrayPointers( |
+ RawExternalUint8Array* raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return ExternalUint8Array::InstanceSize(); |
+} |
+ |
+ |
+intptr_t RawExternalInt16Array::VisitExternalInt16ArrayPointers( |
+ RawExternalInt16Array* raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return ExternalInt16Array::InstanceSize(); |
+} |
+ |
+ |
+intptr_t RawExternalUint16Array::VisitExternalUint16ArrayPointers( |
+ RawExternalUint16Array* raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return ExternalUint16Array::InstanceSize(); |
+} |
+ |
+ |
+intptr_t RawExternalInt32Array::VisitExternalInt32ArrayPointers( |
+ RawExternalInt32Array* raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return ExternalInt32Array::InstanceSize(); |
+} |
+ |
+ |
+intptr_t RawExternalUint32Array::VisitExternalUint32ArrayPointers( |
+ RawExternalUint32Array* raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return ExternalUint32Array::InstanceSize(); |
+} |
+ |
+ |
+intptr_t RawExternalInt64Array::VisitExternalInt64ArrayPointers( |
+ RawExternalInt64Array* raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return ExternalInt64Array::InstanceSize(); |
+} |
+ |
+ |
+intptr_t RawExternalUint64Array::VisitExternalUint64ArrayPointers( |
+ RawExternalUint64Array* raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return ExternalUint64Array::InstanceSize(); |
+} |
+ |
+ |
+intptr_t RawExternalFloat32Array::VisitExternalFloat32ArrayPointers( |
+ RawExternalFloat32Array* raw_obj, ObjectPointerVisitor* visitor) { |
+ // Make sure that we got here with the tagged pointer as this. |
+ ASSERT(raw_obj->IsHeapObject()); |
+ visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
+ return ExternalFloat32Array::InstanceSize(); |
} |
-intptr_t RawExternalByteArray::VisitExternalByteArrayPointers( |
- RawExternalByteArray* raw_obj, ObjectPointerVisitor* visitor) { |
+intptr_t RawExternalFloat64Array::VisitExternalFloat64ArrayPointers( |
+ RawExternalFloat64Array* raw_obj, ObjectPointerVisitor* visitor) { |
// Make sure that we got here with the tagged pointer as this. |
ASSERT(raw_obj->IsHeapObject()); |
visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
- return ExternalByteArray::InstanceSize(); |
+ return ExternalFloat64Array::InstanceSize(); |
} |