OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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/class_finalizer.h" | 5 #include "vm/class_finalizer.h" |
6 | 6 |
7 #include "vm/flags.h" | 7 #include "vm/flags.h" |
8 #include "vm/heap.h" | 8 #include "vm/heap.h" |
9 #include "vm/isolate.h" | 9 #include "vm/isolate.h" |
10 #include "vm/longjump.h" | 10 #include "vm/longjump.h" |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 cls = object_store->external_two_byte_string_class(); | 215 cls = object_store->external_two_byte_string_class(); |
216 ASSERT(ExternalTwoByteString::InstanceSize() == cls.instance_size()); | 216 ASSERT(ExternalTwoByteString::InstanceSize() == cls.instance_size()); |
217 cls = object_store->double_class(); | 217 cls = object_store->double_class(); |
218 ASSERT(Double::InstanceSize() == cls.instance_size()); | 218 ASSERT(Double::InstanceSize() == cls.instance_size()); |
219 cls = object_store->bool_class(); | 219 cls = object_store->bool_class(); |
220 ASSERT(Bool::InstanceSize() == cls.instance_size()); | 220 ASSERT(Bool::InstanceSize() == cls.instance_size()); |
221 cls = object_store->array_class(); | 221 cls = object_store->array_class(); |
222 ASSERT(Array::InstanceSize() == cls.instance_size()); | 222 ASSERT(Array::InstanceSize() == cls.instance_size()); |
223 cls = object_store->immutable_array_class(); | 223 cls = object_store->immutable_array_class(); |
224 ASSERT(ImmutableArray::InstanceSize() == cls.instance_size()); | 224 ASSERT(ImmutableArray::InstanceSize() == cls.instance_size()); |
225 cls = object_store->uint8_array_class(); | |
226 ASSERT(Uint8Array::InstanceSize() == cls.instance_size()); | |
227 cls = object_store->uint8_clamped_array_class(); | |
228 ASSERT(Uint8ClampedArray::InstanceSize() == cls.instance_size()); | |
229 cls = object_store->int16_array_class(); | |
230 ASSERT(Int16Array::InstanceSize() == cls.instance_size()); | |
231 cls = object_store->uint16_array_class(); | |
232 ASSERT(Uint16Array::InstanceSize() == cls.instance_size()); | |
233 cls = object_store->int32_array_class(); | |
234 ASSERT(Int32Array::InstanceSize() == cls.instance_size()); | |
235 cls = object_store->uint32_array_class(); | |
236 ASSERT(Uint32Array::InstanceSize() == cls.instance_size()); | |
237 cls = object_store->int64_array_class(); | |
238 ASSERT(Int64Array::InstanceSize() == cls.instance_size()); | |
239 cls = object_store->uint64_array_class(); | |
240 ASSERT(Uint64Array::InstanceSize() == cls.instance_size()); | |
241 cls = object_store->float32_array_class(); | |
242 ASSERT(Float32Array::InstanceSize() == cls.instance_size()); | |
243 cls = object_store->float64_array_class(); | |
244 ASSERT(Float64Array::InstanceSize() == cls.instance_size()); | |
245 cls = object_store->external_int8_array_class(); | |
246 ASSERT(ExternalInt8Array::InstanceSize() == cls.instance_size()); | |
247 cls = object_store->external_uint8_clamped_array_class(); | |
248 ASSERT(ExternalUint8ClampedArray::InstanceSize() == cls.instance_size()); | |
249 cls = object_store->external_int16_array_class(); | |
250 ASSERT(ExternalInt16Array::InstanceSize() == cls.instance_size()); | |
251 cls = object_store->external_uint16_array_class(); | |
252 ASSERT(ExternalUint16Array::InstanceSize() == cls.instance_size()); | |
253 cls = object_store->external_int32_array_class(); | |
254 ASSERT(ExternalInt32Array::InstanceSize() == cls.instance_size()); | |
255 cls = object_store->external_uint32_array_class(); | |
256 ASSERT(ExternalUint32Array::InstanceSize() == cls.instance_size()); | |
257 cls = object_store->external_int64_array_class(); | |
258 ASSERT(ExternalInt64Array::InstanceSize() == cls.instance_size()); | |
259 cls = object_store->external_uint64_array_class(); | |
260 ASSERT(ExternalUint64Array::InstanceSize() == cls.instance_size()); | |
261 cls = object_store->external_float32_array_class(); | |
262 ASSERT(ExternalFloat32Array::InstanceSize() == cls.instance_size()); | |
263 cls = object_store->external_float64_array_class(); | |
264 ASSERT(ExternalFloat64Array::InstanceSize() == cls.instance_size()); | |
265 cls = object_store->weak_property_class(); | 225 cls = object_store->weak_property_class(); |
266 ASSERT(WeakProperty::InstanceSize() == cls.instance_size()); | 226 ASSERT(WeakProperty::InstanceSize() == cls.instance_size()); |
267 #endif // defined(DEBUG) | 227 #endif // defined(DEBUG) |
268 | 228 |
269 // Remember the currently pending classes. | 229 // Remember the currently pending classes. |
270 const GrowableObjectArray& class_array = | 230 const GrowableObjectArray& class_array = |
271 GrowableObjectArray::Handle(object_store->pending_classes()); | 231 GrowableObjectArray::Handle(object_store->pending_classes()); |
272 for (intptr_t i = 0; i < class_array.Length(); i++) { | 232 for (intptr_t i = 0; i < class_array.Length(); i++) { |
273 // TODO(iposva): Add real checks. | 233 // TODO(iposva): Add real checks. |
274 cls ^= class_array.At(i); | 234 cls ^= class_array.At(i); |
(...skipping 1440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1715 case kBigintCid: | 1675 case kBigintCid: |
1716 case kDoubleCid: // Class Double, not double. | 1676 case kDoubleCid: // Class Double, not double. |
1717 case kOneByteStringCid: | 1677 case kOneByteStringCid: |
1718 case kTwoByteStringCid: | 1678 case kTwoByteStringCid: |
1719 case kExternalOneByteStringCid: | 1679 case kExternalOneByteStringCid: |
1720 case kExternalTwoByteStringCid: | 1680 case kExternalTwoByteStringCid: |
1721 case kBoolCid: | 1681 case kBoolCid: |
1722 case kArrayCid: | 1682 case kArrayCid: |
1723 case kImmutableArrayCid: | 1683 case kImmutableArrayCid: |
1724 case kGrowableObjectArrayCid: | 1684 case kGrowableObjectArrayCid: |
1725 case kInt8ArrayCid: | 1685 #define DO_NOT_EXTEND_TYPED_DATA_CLASSES(clazz) \ |
1726 case kExternalInt8ArrayCid: | 1686 case kTypedData##clazz##Cid: \ |
1727 case kUint8ArrayCid: | 1687 case kTypedData##clazz##ViewCid: \ |
1728 case kUint8ClampedArrayCid: | |
1729 case kExternalUint8ArrayCid: | |
1730 case kExternalUint8ClampedArrayCid: | |
1731 case kInt16ArrayCid: | |
1732 case kExternalInt16ArrayCid: | |
1733 case kUint16ArrayCid: | |
1734 case kExternalUint16ArrayCid: | |
1735 case kInt32ArrayCid: | |
1736 case kExternalInt32ArrayCid: | |
1737 case kUint32ArrayCid: | |
1738 case kExternalUint32ArrayCid: | |
1739 case kInt64ArrayCid: | |
1740 case kExternalInt64ArrayCid: | |
1741 case kUint64ArrayCid: | |
1742 case kExternalUint64ArrayCid: | |
1743 case kFloat32ArrayCid: | |
1744 case kExternalFloat32ArrayCid: | |
1745 case kFloat64ArrayCid: | |
1746 case kExternalFloat64ArrayCid: | |
1747 #define DO_NOT_EXTEND_TYPED_DATA_CLASSES(clazz) \ | |
1748 case kTypedData##clazz##Cid: \ | |
1749 case kExternalTypedData##clazz##Cid: | 1688 case kExternalTypedData##clazz##Cid: |
1750 CLASS_LIST_TYPED_DATA(DO_NOT_EXTEND_TYPED_DATA_CLASSES) | 1689 CLASS_LIST_TYPED_DATA(DO_NOT_EXTEND_TYPED_DATA_CLASSES) |
1751 #undef DO_NOT_EXTEND_TYPED_DATA_CLASSES | 1690 #undef DO_NOT_EXTEND_TYPED_DATA_CLASSES |
| 1691 case kByteDataViewCid: |
1752 case kDartFunctionCid: | 1692 case kDartFunctionCid: |
1753 case kWeakPropertyCid: | 1693 case kWeakPropertyCid: |
1754 is_error = true; | 1694 is_error = true; |
1755 break; | 1695 break; |
1756 default: { | 1696 default: { |
1757 // Special case: classes for which we don't have a known class id. | 1697 // Special case: classes for which we don't have a known class id. |
1758 if (super_type.IsDoubleType() || | 1698 if (super_type.IsDoubleType() || |
1759 super_type.IsIntType() || | 1699 super_type.IsIntType() || |
1760 super_type.IsStringType()) { | 1700 super_type.IsStringType()) { |
1761 is_error = true; | 1701 is_error = true; |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1995 void ClassFinalizer::ReportError(const char* format, ...) { | 1935 void ClassFinalizer::ReportError(const char* format, ...) { |
1996 va_list args; | 1936 va_list args; |
1997 va_start(args, format); | 1937 va_start(args, format); |
1998 const Error& error = Error::Handle( | 1938 const Error& error = Error::Handle( |
1999 Parser::FormatError(Script::Handle(), -1, "Error", format, args)); | 1939 Parser::FormatError(Script::Handle(), -1, "Error", format, args)); |
2000 va_end(args); | 1940 va_end(args); |
2001 ReportError(error); | 1941 ReportError(error); |
2002 } | 1942 } |
2003 | 1943 |
2004 } // namespace dart | 1944 } // namespace dart |
OLD | NEW |