OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/raw_object.h" | 5 #include "vm/raw_object.h" |
6 | 6 |
7 #include "vm/class_table.h" | 7 #include "vm/class_table.h" |
8 #include "vm/freelist.h" | 8 #include "vm/freelist.h" |
9 #include "vm/isolate.h" | 9 #include "vm/isolate.h" |
10 #include "vm/object.h" | 10 #include "vm/object.h" |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 instance_size = Int64Array::InstanceSize(byte_array_length); | 175 instance_size = Int64Array::InstanceSize(byte_array_length); |
176 break; | 176 break; |
177 } | 177 } |
178 case kUint64ArrayCid: { | 178 case kUint64ArrayCid: { |
179 const RawUint64Array* raw_byte_array = | 179 const RawUint64Array* raw_byte_array = |
180 reinterpret_cast<const RawUint64Array*>(this); | 180 reinterpret_cast<const RawUint64Array*>(this); |
181 intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); | 181 intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
182 instance_size = Uint64Array::InstanceSize(byte_array_length); | 182 instance_size = Uint64Array::InstanceSize(byte_array_length); |
183 break; | 183 break; |
184 } | 184 } |
| 185 case kFloat32x4ArrayCid: { |
| 186 const RawFloat32x4Array* raw_byte_array = |
| 187 reinterpret_cast<const RawFloat32x4Array*>(this); |
| 188 intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
| 189 instance_size = Float32x4Array::InstanceSize(byte_array_length); |
| 190 break; |
| 191 } |
185 case kFloat32ArrayCid: { | 192 case kFloat32ArrayCid: { |
186 const RawFloat32Array* raw_byte_array = | 193 const RawFloat32Array* raw_byte_array = |
187 reinterpret_cast<const RawFloat32Array*>(this); | 194 reinterpret_cast<const RawFloat32Array*>(this); |
188 intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); | 195 intptr_t byte_array_length = Smi::Value(raw_byte_array->ptr()->length_); |
189 instance_size = Float32Array::InstanceSize(byte_array_length); | 196 instance_size = Float32Array::InstanceSize(byte_array_length); |
190 break; | 197 break; |
191 } | 198 } |
192 case kFloat64ArrayCid: { | 199 case kFloat64ArrayCid: { |
193 const RawFloat64Array* raw_byte_array = | 200 const RawFloat64Array* raw_byte_array = |
194 reinterpret_cast<const RawFloat64Array*>(this); | 201 reinterpret_cast<const RawFloat64Array*>(this); |
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 } | 761 } |
755 | 762 |
756 | 763 |
757 intptr_t RawGrowableObjectArray::VisitGrowableObjectArrayPointers( | 764 intptr_t RawGrowableObjectArray::VisitGrowableObjectArrayPointers( |
758 RawGrowableObjectArray* raw_obj, ObjectPointerVisitor* visitor) { | 765 RawGrowableObjectArray* raw_obj, ObjectPointerVisitor* visitor) { |
759 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | 766 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
760 return GrowableObjectArray::InstanceSize(); | 767 return GrowableObjectArray::InstanceSize(); |
761 } | 768 } |
762 | 769 |
763 | 770 |
| 771 intptr_t RawFloat32x4::VisitFloat32x4Pointers( |
| 772 RawFloat32x4* raw_obj, |
| 773 ObjectPointerVisitor* visitor) { |
| 774 ASSERT(raw_obj->IsHeapObject()); |
| 775 return Float32x4::InstanceSize(); |
| 776 } |
| 777 |
| 778 |
| 779 intptr_t RawUint32x4::VisitUint32x4Pointers( |
| 780 RawUint32x4* raw_obj, |
| 781 ObjectPointerVisitor* visitor) { |
| 782 ASSERT(raw_obj->IsHeapObject()); |
| 783 return Uint32x4::InstanceSize(); |
| 784 } |
| 785 |
| 786 |
764 intptr_t RawByteArray::VisitByteArrayPointers(RawByteArray* raw_obj, | 787 intptr_t RawByteArray::VisitByteArrayPointers(RawByteArray* raw_obj, |
765 ObjectPointerVisitor* visitor) { | 788 ObjectPointerVisitor* visitor) { |
766 // ByteArray is an abstract class. | 789 // ByteArray is an abstract class. |
767 UNREACHABLE(); | 790 UNREACHABLE(); |
768 return 0; | 791 return 0; |
769 } | 792 } |
770 | 793 |
771 | 794 |
772 intptr_t RawInt8Array::VisitInt8ArrayPointers( | 795 intptr_t RawInt8Array::VisitInt8ArrayPointers( |
773 RawInt8Array *raw_obj, ObjectPointerVisitor* visitor) { | 796 RawInt8Array *raw_obj, ObjectPointerVisitor* visitor) { |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
852 intptr_t RawUint64Array::VisitUint64ArrayPointers( | 875 intptr_t RawUint64Array::VisitUint64ArrayPointers( |
853 RawUint64Array *raw_obj, ObjectPointerVisitor* visitor) { | 876 RawUint64Array *raw_obj, ObjectPointerVisitor* visitor) { |
854 // Make sure that we got here with the tagged pointer as this. | 877 // Make sure that we got here with the tagged pointer as this. |
855 ASSERT(raw_obj->IsHeapObject()); | 878 ASSERT(raw_obj->IsHeapObject()); |
856 intptr_t length = Smi::Value(raw_obj->ptr()->length_); | 879 intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
857 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | 880 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
858 return Uint64Array::InstanceSize(length); | 881 return Uint64Array::InstanceSize(length); |
859 } | 882 } |
860 | 883 |
861 | 884 |
| 885 intptr_t RawFloat32x4Array::VisitFloat32x4ArrayPointers( |
| 886 RawFloat32x4Array *raw_obj, ObjectPointerVisitor* visitor) { |
| 887 // Make sure that we got here with the tagged pointer as this. |
| 888 ASSERT(raw_obj->IsHeapObject()); |
| 889 intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
| 890 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
| 891 return Float32x4Array::InstanceSize(length); |
| 892 } |
| 893 |
862 intptr_t RawFloat32Array::VisitFloat32ArrayPointers( | 894 intptr_t RawFloat32Array::VisitFloat32ArrayPointers( |
863 RawFloat32Array *raw_obj, ObjectPointerVisitor* visitor) { | 895 RawFloat32Array *raw_obj, ObjectPointerVisitor* visitor) { |
864 // Make sure that we got here with the tagged pointer as this. | 896 // Make sure that we got here with the tagged pointer as this. |
865 ASSERT(raw_obj->IsHeapObject()); | 897 ASSERT(raw_obj->IsHeapObject()); |
866 intptr_t length = Smi::Value(raw_obj->ptr()->length_); | 898 intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
867 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | 899 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
868 return Float32Array::InstanceSize(length); | 900 return Float32Array::InstanceSize(length); |
869 } | 901 } |
870 | 902 |
871 | 903 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 | 985 |
954 intptr_t RawExternalUint64Array::VisitExternalUint64ArrayPointers( | 986 intptr_t RawExternalUint64Array::VisitExternalUint64ArrayPointers( |
955 RawExternalUint64Array* raw_obj, ObjectPointerVisitor* visitor) { | 987 RawExternalUint64Array* raw_obj, ObjectPointerVisitor* visitor) { |
956 // Make sure that we got here with the tagged pointer as this. | 988 // Make sure that we got here with the tagged pointer as this. |
957 ASSERT(raw_obj->IsHeapObject()); | 989 ASSERT(raw_obj->IsHeapObject()); |
958 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | 990 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
959 return ExternalUint64Array::InstanceSize(); | 991 return ExternalUint64Array::InstanceSize(); |
960 } | 992 } |
961 | 993 |
962 | 994 |
| 995 intptr_t |
| 996 RawExternalFloat32x4Array::VisitExternalFloat32x4ArrayPointers( |
| 997 RawExternalFloat32x4Array* raw_obj, ObjectPointerVisitor* visitor) { |
| 998 // Make sure that we got here with the tagged pointer as this. |
| 999 ASSERT(raw_obj->IsHeapObject()); |
| 1000 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
| 1001 return ExternalFloat32x4Array::InstanceSize(); |
| 1002 } |
| 1003 |
| 1004 |
963 intptr_t RawExternalFloat32Array::VisitExternalFloat32ArrayPointers( | 1005 intptr_t RawExternalFloat32Array::VisitExternalFloat32ArrayPointers( |
964 RawExternalFloat32Array* raw_obj, ObjectPointerVisitor* visitor) { | 1006 RawExternalFloat32Array* raw_obj, ObjectPointerVisitor* visitor) { |
965 // Make sure that we got here with the tagged pointer as this. | 1007 // Make sure that we got here with the tagged pointer as this. |
966 ASSERT(raw_obj->IsHeapObject()); | 1008 ASSERT(raw_obj->IsHeapObject()); |
967 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | 1009 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
968 return ExternalFloat32Array::InstanceSize(); | 1010 return ExternalFloat32Array::InstanceSize(); |
969 } | 1011 } |
970 | 1012 |
971 | 1013 |
972 intptr_t RawExternalFloat64Array::VisitExternalFloat64ArrayPointers( | 1014 intptr_t RawExternalFloat64Array::VisitExternalFloat64ArrayPointers( |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1007 | 1049 |
1008 intptr_t RawWeakProperty::VisitWeakPropertyPointers( | 1050 intptr_t RawWeakProperty::VisitWeakPropertyPointers( |
1009 RawWeakProperty* raw_obj, ObjectPointerVisitor* visitor) { | 1051 RawWeakProperty* raw_obj, ObjectPointerVisitor* visitor) { |
1010 // Make sure that we got here with the tagged pointer as this. | 1052 // Make sure that we got here with the tagged pointer as this. |
1011 ASSERT(raw_obj->IsHeapObject()); | 1053 ASSERT(raw_obj->IsHeapObject()); |
1012 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | 1054 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
1013 return WeakProperty::InstanceSize(); | 1055 return WeakProperty::InstanceSize(); |
1014 } | 1056 } |
1015 | 1057 |
1016 } // namespace dart | 1058 } // namespace dart |
OLD | NEW |