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/object.h" | 5 #include "vm/object.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
10 #include "vm/bigint_operations.h" | 10 #include "vm/bigint_operations.h" |
(...skipping 897 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
908 Array::Handle(Array::New(RawObject::NumberOfTypedDataClasses())); | 908 Array::Handle(Array::New(RawObject::NumberOfTypedDataClasses())); |
909 int index = 0; | 909 int index = 0; |
910 #define REGISTER_TYPED_DATA_CLASS(clazz) \ | 910 #define REGISTER_TYPED_DATA_CLASS(clazz) \ |
911 cls = Class::NewTypedDataClass(kTypedData##clazz##Cid); \ | 911 cls = Class::NewTypedDataClass(kTypedData##clazz##Cid); \ |
912 index = kTypedData##clazz##Cid - kTypedDataInt8ArrayCid; \ | 912 index = kTypedData##clazz##Cid - kTypedDataInt8ArrayCid; \ |
913 typeddata_classes.SetAt(index, cls); \ | 913 typeddata_classes.SetAt(index, cls); \ |
914 RegisterPrivateClass(cls, Symbols::_##clazz(), lib); \ | 914 RegisterPrivateClass(cls, Symbols::_##clazz(), lib); \ |
915 | 915 |
916 CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_CLASS); | 916 CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_CLASS); |
917 #undef REGISTER_TYPED_DATA_CLASS | 917 #undef REGISTER_TYPED_DATA_CLASS |
918 #define REGISTER_TYPED_DATA_VIEW_CLASS(clazz) \ | |
919 cls = Class::NewTypedDataViewClass(kTypedData##clazz##ViewCid); \ | |
920 index = kTypedData##clazz##ViewCid - kTypedDataInt8ArrayCid; \ | |
921 typeddata_classes.SetAt(index, cls); \ | |
922 RegisterPrivateClass(cls, Symbols::_##clazz##View(), lib); \ | |
923 pending_classes.Add(cls, Heap::kOld); \ | |
924 | |
925 CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_VIEW_CLASS); | |
926 #undef REGISTER_TYPED_DATA_VIEW_CLASS | |
918 #define REGISTER_EXT_TYPED_DATA_CLASS(clazz) \ | 927 #define REGISTER_EXT_TYPED_DATA_CLASS(clazz) \ |
919 cls = Class::NewExternalTypedDataClass(kExternalTypedData##clazz##Cid); \ | 928 cls = Class::NewExternalTypedDataClass(kExternalTypedData##clazz##Cid); \ |
920 index = kExternalTypedData##clazz##Cid - kTypedDataInt8ArrayCid; \ | 929 index = kExternalTypedData##clazz##Cid - kTypedDataInt8ArrayCid; \ |
921 typeddata_classes.SetAt(index, cls); \ | 930 typeddata_classes.SetAt(index, cls); \ |
922 RegisterPrivateClass(cls, Symbols::_External##clazz(), lib); \ | 931 RegisterPrivateClass(cls, Symbols::_External##clazz(), lib); \ |
923 | 932 |
924 CLASS_LIST_TYPED_DATA(REGISTER_EXT_TYPED_DATA_CLASS); | 933 CLASS_LIST_TYPED_DATA(REGISTER_EXT_TYPED_DATA_CLASS); |
925 #undef REGISTER_EXT_TYPED_DATA_CLASS | 934 #undef REGISTER_EXT_TYPED_DATA_CLASS |
926 object_store->set_typeddata_classes(typeddata_classes); | 935 object_store->set_typeddata_classes(typeddata_classes); |
927 | 936 |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1068 cls = Class::New<ImmutableArray>(); | 1077 cls = Class::New<ImmutableArray>(); |
1069 object_store->set_immutable_array_class(cls); | 1078 object_store->set_immutable_array_class(cls); |
1070 | 1079 |
1071 cls = Class::New<GrowableObjectArray>(); | 1080 cls = Class::New<GrowableObjectArray>(); |
1072 object_store->set_growable_object_array_class(cls); | 1081 object_store->set_growable_object_array_class(cls); |
1073 | 1082 |
1074 #define REGISTER_SCALARLIST_CLASS(name, object_store_name) \ | 1083 #define REGISTER_SCALARLIST_CLASS(name, object_store_name) \ |
1075 cls = Class::New<name>(); \ | 1084 cls = Class::New<name>(); \ |
1076 object_store->set_##object_store_name##_class(cls); \ | 1085 object_store->set_##object_store_name##_class(cls); \ |
1077 | 1086 |
1078 REGISTER_SCALARLIST_CLASS(Float32x4, float32x4); | 1087 REGISTER_SCALARLIST_CLASS(Float32x4, float32x4); |
Ivan Posva
2013/03/22 04:50:01
Can we make it a goal to remove dart:scalarlist on
siva
2013/03/25 17:20:35
Yes, once the simd stuff has landed we could get r
| |
1079 REGISTER_SCALARLIST_CLASS(Uint32x4, uint32x4); | 1088 REGISTER_SCALARLIST_CLASS(Uint32x4, uint32x4); |
1080 REGISTER_SCALARLIST_CLASS(Int8Array, int8_array); | 1089 REGISTER_SCALARLIST_CLASS(Int8Array, int8_array); |
1081 REGISTER_SCALARLIST_CLASS(Uint8Array, uint8_array); | 1090 REGISTER_SCALARLIST_CLASS(Uint8Array, uint8_array); |
1082 REGISTER_SCALARLIST_CLASS(Uint8ClampedArray, uint8_clamped_array); | 1091 REGISTER_SCALARLIST_CLASS(Uint8ClampedArray, uint8_clamped_array); |
1083 REGISTER_SCALARLIST_CLASS(Int16Array, int16_array); | 1092 REGISTER_SCALARLIST_CLASS(Int16Array, int16_array); |
1084 REGISTER_SCALARLIST_CLASS(Uint16Array, uint16_array); | 1093 REGISTER_SCALARLIST_CLASS(Uint16Array, uint16_array); |
1085 REGISTER_SCALARLIST_CLASS(Int32Array, int32_array); | 1094 REGISTER_SCALARLIST_CLASS(Int32Array, int32_array); |
1086 REGISTER_SCALARLIST_CLASS(Uint32Array, uint32_array); | 1095 REGISTER_SCALARLIST_CLASS(Uint32Array, uint32_array); |
1087 REGISTER_SCALARLIST_CLASS(Int64Array, int64_array); | 1096 REGISTER_SCALARLIST_CLASS(Int64Array, int64_array); |
1088 REGISTER_SCALARLIST_CLASS(Uint64Array, uint64_array); | 1097 REGISTER_SCALARLIST_CLASS(Uint64Array, uint64_array); |
(...skipping 12 matching lines...) Expand all Loading... | |
1101 REGISTER_SCALARLIST_CLASS(ExternalUint64Array, external_uint64_array); | 1110 REGISTER_SCALARLIST_CLASS(ExternalUint64Array, external_uint64_array); |
1102 REGISTER_SCALARLIST_CLASS(ExternalFloat32x4Array, external_float32x4_array); | 1111 REGISTER_SCALARLIST_CLASS(ExternalFloat32x4Array, external_float32x4_array); |
1103 REGISTER_SCALARLIST_CLASS(ExternalFloat32Array, external_float32_array); | 1112 REGISTER_SCALARLIST_CLASS(ExternalFloat32Array, external_float32_array); |
1104 REGISTER_SCALARLIST_CLASS(ExternalFloat64Array, external_float64_array); | 1113 REGISTER_SCALARLIST_CLASS(ExternalFloat64Array, external_float64_array); |
1105 #undef REGISTER_SCALARLIST_CLASS | 1114 #undef REGISTER_SCALARLIST_CLASS |
1106 | 1115 |
1107 #define REGISTER_TYPED_DATA_CLASS(clazz) \ | 1116 #define REGISTER_TYPED_DATA_CLASS(clazz) \ |
1108 cls = Class::NewTypedDataClass(kTypedData##clazz##Cid); | 1117 cls = Class::NewTypedDataClass(kTypedData##clazz##Cid); |
1109 CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_CLASS); | 1118 CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_CLASS); |
1110 #undef REGISTER_TYPED_DATA_CLASS | 1119 #undef REGISTER_TYPED_DATA_CLASS |
1120 #define REGISTER_TYPED_DATA_VIEW_CLASS(clazz) \ | |
1121 cls = Class::NewTypedDataViewClass(kTypedData##clazz##ViewCid); | |
1122 CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_VIEW_CLASS); | |
1123 #undef REGISTER_TYPED_DATA_VIEW_CLASS | |
1111 #define REGISTER_EXT_TYPED_DATA_CLASS(clazz) \ | 1124 #define REGISTER_EXT_TYPED_DATA_CLASS(clazz) \ |
1112 cls = Class::NewExternalTypedDataClass(kExternalTypedData##clazz##Cid); | 1125 cls = Class::NewExternalTypedDataClass(kExternalTypedData##clazz##Cid); |
1113 CLASS_LIST_TYPED_DATA(REGISTER_EXT_TYPED_DATA_CLASS); | 1126 CLASS_LIST_TYPED_DATA(REGISTER_EXT_TYPED_DATA_CLASS); |
1114 #undef REGISTER_EXT_TYPED_DATA_CLASS | 1127 #undef REGISTER_EXT_TYPED_DATA_CLASS |
1115 | 1128 |
1116 cls = Class::New<Integer>(); | 1129 cls = Class::New<Integer>(); |
1117 object_store->set_integer_implementation_class(cls); | 1130 object_store->set_integer_implementation_class(cls); |
1118 | 1131 |
1119 cls = Class::New<Smi>(); | 1132 cls = Class::New<Smi>(); |
1120 object_store->set_smi_class(cls); | 1133 object_store->set_smi_class(cls); |
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1945 ASSERT(RawObject::IsTypedDataClassId(class_id)); | 1958 ASSERT(RawObject::IsTypedDataClassId(class_id)); |
1946 intptr_t instance_size = TypedData::InstanceSize(); | 1959 intptr_t instance_size = TypedData::InstanceSize(); |
1947 Class& result = Class::Handle(New<TypedData>(class_id)); | 1960 Class& result = Class::Handle(New<TypedData>(class_id)); |
1948 result.set_instance_size(instance_size); | 1961 result.set_instance_size(instance_size); |
1949 result.set_next_field_offset(instance_size); | 1962 result.set_next_field_offset(instance_size); |
1950 result.set_is_prefinalized(); | 1963 result.set_is_prefinalized(); |
1951 return result.raw(); | 1964 return result.raw(); |
1952 } | 1965 } |
1953 | 1966 |
1954 | 1967 |
1968 RawClass* Class::NewTypedDataViewClass(intptr_t class_id) { | |
1969 ASSERT(RawObject::IsTypedDataViewClassId(class_id)); | |
1970 Class& result = Class::Handle(New<Instance>(class_id)); | |
1971 result.set_instance_size(0); | |
1972 result.set_next_field_offset(0); | |
1973 return result.raw(); | |
1974 } | |
1975 | |
1976 | |
1955 RawClass* Class::NewExternalTypedDataClass(intptr_t class_id) { | 1977 RawClass* Class::NewExternalTypedDataClass(intptr_t class_id) { |
1956 ASSERT(RawObject::IsExternalTypedDataClassId(class_id)); | 1978 ASSERT(RawObject::IsExternalTypedDataClassId(class_id)); |
1957 intptr_t instance_size = ExternalTypedData::InstanceSize(); | 1979 intptr_t instance_size = ExternalTypedData::InstanceSize(); |
1958 Class& result = Class::Handle(New<ExternalTypedData>(class_id)); | 1980 Class& result = Class::Handle(New<ExternalTypedData>(class_id)); |
1959 result.set_instance_size(instance_size); | 1981 result.set_instance_size(instance_size); |
1960 result.set_next_field_offset(instance_size); | 1982 result.set_next_field_offset(instance_size); |
1961 result.set_is_prefinalized(); | 1983 result.set_is_prefinalized(); |
1962 return result.raw(); | 1984 return result.raw(); |
1963 } | 1985 } |
1964 | 1986 |
(...skipping 11653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
13618 } | 13640 } |
13619 return result.raw(); | 13641 return result.raw(); |
13620 } | 13642 } |
13621 | 13643 |
13622 | 13644 |
13623 const char* WeakProperty::ToCString() const { | 13645 const char* WeakProperty::ToCString() const { |
13624 return "_WeakProperty"; | 13646 return "_WeakProperty"; |
13625 } | 13647 } |
13626 | 13648 |
13627 } // namespace dart | 13649 } // namespace dart |
OLD | NEW |