Index: runtime/vm/raw_object.cc |
diff --git a/runtime/vm/raw_object.cc b/runtime/vm/raw_object.cc |
index ecf2a79ee850123e3c6cd05f3a4c2ebe7a065606..217159c8a4a018af2c449b34289651643f8aeab1 100644 |
--- a/runtime/vm/raw_object.cc |
+++ b/runtime/vm/raw_object.cc |
@@ -182,6 +182,13 @@ intptr_t RawObject::SizeFromClass() const { |
instance_size = Uint64Array::InstanceSize(byte_array_length); |
break; |
} |
+ case kSimd128Float32ArrayCid: { |
+ const RawSimd128Float32Array* raw_byte_array = |
+ reinterpret_cast<const RawSimd128Float32Array*>(this); |
+ intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
+ instance_size = Simd128Float32Array::InstanceSize(byte_array_length); |
+ break; |
+ } |
case kFloat32ArrayCid: { |
const RawFloat32Array* raw_byte_array = |
reinterpret_cast<const RawFloat32Array*>(this); |
@@ -761,6 +768,22 @@ intptr_t RawGrowableObjectArray::VisitGrowableObjectArrayPointers( |
} |
+intptr_t RawSimd128Float32::VisitSimd128Float32Pointers( |
+ RawSimd128Float32* raw_obj, |
+ ObjectPointerVisitor* visitor) { |
+ ASSERT(raw_obj->IsHeapObject()); |
+ return Simd128Float32::InstanceSize(); |
+} |
+ |
+ |
+intptr_t RawSimd128Mask::VisitSimd128MaskPointers( |
+ RawSimd128Mask* raw_obj, |
+ ObjectPointerVisitor* visitor) { |
+ ASSERT(raw_obj->IsHeapObject()); |
+ return Simd128Mask::InstanceSize(); |
+} |
+ |
+ |
intptr_t RawByteArray::VisitByteArrayPointers(RawByteArray* raw_obj, |
ObjectPointerVisitor* visitor) { |
// ByteArray is an abstract class. |
@@ -859,6 +882,15 @@ intptr_t RawUint64Array::VisitUint64ArrayPointers( |
} |
+intptr_t RawSimd128Float32Array::VisitSimd128Float32ArrayPointers( |
+ RawSimd128Float32Array *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 Simd128Float32Array::InstanceSize(length); |
+} |
+ |
intptr_t RawFloat32Array::VisitFloat32ArrayPointers( |
RawFloat32Array *raw_obj, ObjectPointerVisitor* visitor) { |
// Make sure that we got here with the tagged pointer as this. |
@@ -960,6 +992,16 @@ intptr_t RawExternalUint64Array::VisitExternalUint64ArrayPointers( |
} |
+intptr_t |
+ RawExternalSimd128Float32Array::VisitExternalSimd128Float32ArrayPointers( |
+ RawExternalSimd128Float32Array* 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 ExternalSimd128Float32Array::InstanceSize(); |
+} |
+ |
+ |
intptr_t RawExternalFloat32Array::VisitExternalFloat32ArrayPointers( |
RawExternalFloat32Array* raw_obj, ObjectPointerVisitor* visitor) { |
// Make sure that we got here with the tagged pointer as this. |