| 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 |