| 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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 instance_size = OneByteString::InstanceSize(string_length); | 94 instance_size = OneByteString::InstanceSize(string_length); |
| 95 break; | 95 break; |
| 96 } | 96 } |
| 97 case kTwoByteStringCid: { | 97 case kTwoByteStringCid: { |
| 98 const RawTwoByteString* raw_string = | 98 const RawTwoByteString* raw_string = |
| 99 reinterpret_cast<const RawTwoByteString*>(this); | 99 reinterpret_cast<const RawTwoByteString*>(this); |
| 100 intptr_t string_length = Smi::Value(raw_string->ptr()->length_); | 100 intptr_t string_length = Smi::Value(raw_string->ptr()->length_); |
| 101 instance_size = TwoByteString::InstanceSize(string_length); | 101 instance_size = TwoByteString::InstanceSize(string_length); |
| 102 break; | 102 break; |
| 103 } | 103 } |
| 104 case kFourByteStringCid: { | |
| 105 const RawFourByteString* raw_string = | |
| 106 reinterpret_cast<const RawFourByteString*>(this); | |
| 107 intptr_t string_length = Smi::Value(raw_string->ptr()->length_); | |
| 108 instance_size = FourByteString::InstanceSize(string_length); | |
| 109 break; | |
| 110 } | |
| 111 case kArrayCid: | 104 case kArrayCid: |
| 112 case kImmutableArrayCid: { | 105 case kImmutableArrayCid: { |
| 113 const RawArray* raw_array = reinterpret_cast<const RawArray*>(this); | 106 const RawArray* raw_array = reinterpret_cast<const RawArray*>(this); |
| 114 intptr_t array_length = Smi::Value(raw_array->ptr()->length_); | 107 intptr_t array_length = Smi::Value(raw_array->ptr()->length_); |
| 115 instance_size = Array::InstanceSize(array_length); | 108 instance_size = Array::InstanceSize(array_length); |
| 116 break; | 109 break; |
| 117 } | 110 } |
| 118 case kInt8ArrayCid: { | 111 case kInt8ArrayCid: { |
| 119 const RawInt8Array* raw_byte_array = | 112 const RawInt8Array* raw_byte_array = |
| 120 reinterpret_cast<const RawInt8Array*>(this); | 113 reinterpret_cast<const RawInt8Array*>(this); |
| (...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 681 | 674 |
| 682 | 675 |
| 683 intptr_t RawTwoByteString::VisitTwoByteStringPointers( | 676 intptr_t RawTwoByteString::VisitTwoByteStringPointers( |
| 684 RawTwoByteString* raw_obj, ObjectPointerVisitor* visitor) { | 677 RawTwoByteString* raw_obj, ObjectPointerVisitor* visitor) { |
| 685 intptr_t length = Smi::Value(raw_obj->ptr()->length_); | 678 intptr_t length = Smi::Value(raw_obj->ptr()->length_); |
| 686 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | 679 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
| 687 return TwoByteString::InstanceSize(length); | 680 return TwoByteString::InstanceSize(length); |
| 688 } | 681 } |
| 689 | 682 |
| 690 | 683 |
| 691 intptr_t RawFourByteString::VisitFourByteStringPointers( | |
| 692 RawFourByteString* raw_obj, ObjectPointerVisitor* visitor) { | |
| 693 intptr_t length = Smi::Value(raw_obj->ptr()->length_); | |
| 694 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | |
| 695 return FourByteString::InstanceSize(length); | |
| 696 } | |
| 697 | |
| 698 | |
| 699 intptr_t RawExternalOneByteString::VisitExternalOneByteStringPointers( | 684 intptr_t RawExternalOneByteString::VisitExternalOneByteStringPointers( |
| 700 RawExternalOneByteString* raw_obj, ObjectPointerVisitor* visitor) { | 685 RawExternalOneByteString* raw_obj, ObjectPointerVisitor* visitor) { |
| 701 // Make sure that we got here with the tagged pointer as this. | 686 // Make sure that we got here with the tagged pointer as this. |
| 702 ASSERT(raw_obj->IsHeapObject()); | 687 ASSERT(raw_obj->IsHeapObject()); |
| 703 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | 688 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
| 704 return ExternalOneByteString::InstanceSize(); | 689 return ExternalOneByteString::InstanceSize(); |
| 705 } | 690 } |
| 706 | 691 |
| 707 | 692 |
| 708 intptr_t RawExternalTwoByteString::VisitExternalTwoByteStringPointers( | 693 intptr_t RawExternalTwoByteString::VisitExternalTwoByteStringPointers( |
| 709 RawExternalTwoByteString* raw_obj, ObjectPointerVisitor* visitor) { | 694 RawExternalTwoByteString* raw_obj, ObjectPointerVisitor* visitor) { |
| 710 // Make sure that we got here with the tagged pointer as this. | 695 // Make sure that we got here with the tagged pointer as this. |
| 711 ASSERT(raw_obj->IsHeapObject()); | 696 ASSERT(raw_obj->IsHeapObject()); |
| 712 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | 697 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
| 713 return ExternalTwoByteString::InstanceSize(); | 698 return ExternalTwoByteString::InstanceSize(); |
| 714 } | 699 } |
| 715 | 700 |
| 716 | 701 |
| 717 intptr_t RawExternalFourByteString::VisitExternalFourByteStringPointers( | |
| 718 RawExternalFourByteString* raw_obj, ObjectPointerVisitor* visitor) { | |
| 719 // Make sure that we got here with the tagged pointer as this. | |
| 720 ASSERT(raw_obj->IsHeapObject()); | |
| 721 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | |
| 722 return ExternalFourByteString::InstanceSize(); | |
| 723 } | |
| 724 | |
| 725 | |
| 726 intptr_t RawBool::VisitBoolPointers(RawBool* raw_obj, | 702 intptr_t RawBool::VisitBoolPointers(RawBool* raw_obj, |
| 727 ObjectPointerVisitor* visitor) { | 703 ObjectPointerVisitor* visitor) { |
| 728 // Make sure that we got here with the tagged pointer as this. | 704 // Make sure that we got here with the tagged pointer as this. |
| 729 ASSERT(raw_obj->IsHeapObject()); | 705 ASSERT(raw_obj->IsHeapObject()); |
| 730 return Bool::InstanceSize(); | 706 return Bool::InstanceSize(); |
| 731 } | 707 } |
| 732 | 708 |
| 733 | 709 |
| 734 intptr_t RawArray::VisitArrayPointers(RawArray* raw_obj, | 710 intptr_t RawArray::VisitArrayPointers(RawArray* raw_obj, |
| 735 ObjectPointerVisitor* visitor) { | 711 ObjectPointerVisitor* visitor) { |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 979 | 955 |
| 980 intptr_t RawWeakProperty::VisitWeakPropertyPointers( | 956 intptr_t RawWeakProperty::VisitWeakPropertyPointers( |
| 981 RawWeakProperty* raw_obj, ObjectPointerVisitor* visitor) { | 957 RawWeakProperty* raw_obj, ObjectPointerVisitor* visitor) { |
| 982 // Make sure that we got here with the tagged pointer as this. | 958 // Make sure that we got here with the tagged pointer as this. |
| 983 ASSERT(raw_obj->IsHeapObject()); | 959 ASSERT(raw_obj->IsHeapObject()); |
| 984 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); | 960 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); |
| 985 return WeakProperty::InstanceSize(); | 961 return WeakProperty::InstanceSize(); |
| 986 } | 962 } |
| 987 | 963 |
| 988 } // namespace dart | 964 } // namespace dart |
| OLD | NEW |