OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/heap/objects-visiting.h" | 5 #include "src/heap/objects-visiting.h" |
6 | 6 |
7 #include "src/heap/heap-inl.h" | 7 #include "src/heap/heap-inl.h" |
8 #include "src/heap/mark-compact-inl.h" | 8 #include "src/heap/mark-compact-inl.h" |
9 #include "src/heap/objects-visiting-inl.h" | 9 #include "src/heap/objects-visiting-inl.h" |
10 | 10 |
11 namespace v8 { | 11 namespace v8 { |
12 namespace internal { | 12 namespace internal { |
13 | 13 |
14 | 14 VisitorId StaticVisitorBase::GetVisitorId(Map* map) { |
15 StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId(Map* map) { | |
16 return GetVisitorId(map->instance_type(), map->instance_size(), | 15 return GetVisitorId(map->instance_type(), map->instance_size(), |
17 FLAG_unbox_double_fields && !map->HasFastPointerLayout()); | 16 FLAG_unbox_double_fields && !map->HasFastPointerLayout()); |
18 } | 17 } |
19 | 18 |
20 | 19 VisitorId StaticVisitorBase::GetVisitorId(int instance_type, int instance_size, |
21 StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId( | 20 bool has_unboxed_fields) { |
22 int instance_type, int instance_size, bool has_unboxed_fields) { | |
23 if (instance_type < FIRST_NONSTRING_TYPE) { | 21 if (instance_type < FIRST_NONSTRING_TYPE) { |
24 switch (instance_type & kStringRepresentationMask) { | 22 switch (instance_type & kStringRepresentationMask) { |
25 case kSeqStringTag: | 23 case kSeqStringTag: |
26 if ((instance_type & kStringEncodingMask) == kOneByteStringTag) { | 24 if ((instance_type & kStringEncodingMask) == kOneByteStringTag) { |
27 return kVisitSeqOneByteString; | 25 return kVisitSeqOneByteString; |
28 } else { | 26 } else { |
29 return kVisitSeqTwoByteString; | 27 return kVisitSeqTwoByteString; |
30 } | 28 } |
31 | 29 |
32 case kConsStringTag: | 30 case kConsStringTag: |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 return kVisitDataObject; | 178 return kVisitDataObject; |
181 | 179 |
182 case FIXED_UINT8_ARRAY_TYPE: | 180 case FIXED_UINT8_ARRAY_TYPE: |
183 case FIXED_INT8_ARRAY_TYPE: | 181 case FIXED_INT8_ARRAY_TYPE: |
184 case FIXED_UINT16_ARRAY_TYPE: | 182 case FIXED_UINT16_ARRAY_TYPE: |
185 case FIXED_INT16_ARRAY_TYPE: | 183 case FIXED_INT16_ARRAY_TYPE: |
186 case FIXED_UINT32_ARRAY_TYPE: | 184 case FIXED_UINT32_ARRAY_TYPE: |
187 case FIXED_INT32_ARRAY_TYPE: | 185 case FIXED_INT32_ARRAY_TYPE: |
188 case FIXED_FLOAT32_ARRAY_TYPE: | 186 case FIXED_FLOAT32_ARRAY_TYPE: |
189 case FIXED_UINT8_CLAMPED_ARRAY_TYPE: | 187 case FIXED_UINT8_CLAMPED_ARRAY_TYPE: |
190 return kVisitFixedTypedArray; | 188 return kVisitFixedTypedArrayBase; |
191 | 189 |
192 case FIXED_FLOAT64_ARRAY_TYPE: | 190 case FIXED_FLOAT64_ARRAY_TYPE: |
193 return kVisitFixedFloat64Array; | 191 return kVisitFixedFloat64Array; |
194 | 192 |
195 #define MAKE_STRUCT_CASE(NAME, Name, name) case NAME##_TYPE: | 193 #define MAKE_STRUCT_CASE(NAME, Name, name) case NAME##_TYPE: |
196 STRUCT_LIST(MAKE_STRUCT_CASE) | 194 STRUCT_LIST(MAKE_STRUCT_CASE) |
197 #undef MAKE_STRUCT_CASE | 195 #undef MAKE_STRUCT_CASE |
198 if (instance_type == ALLOCATION_SITE_TYPE) { | 196 if (instance_type == ALLOCATION_SITE_TYPE) { |
199 return kVisitAllocationSite; | 197 return kVisitAllocationSite; |
200 } | 198 } |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 }; | 392 }; |
395 | 393 |
396 | 394 |
397 template Object* VisitWeakList<Context>(Heap* heap, Object* list, | 395 template Object* VisitWeakList<Context>(Heap* heap, Object* list, |
398 WeakObjectRetainer* retainer); | 396 WeakObjectRetainer* retainer); |
399 | 397 |
400 template Object* VisitWeakList<AllocationSite>(Heap* heap, Object* list, | 398 template Object* VisitWeakList<AllocationSite>(Heap* heap, Object* list, |
401 WeakObjectRetainer* retainer); | 399 WeakObjectRetainer* retainer); |
402 } // namespace internal | 400 } // namespace internal |
403 } // namespace v8 | 401 } // namespace v8 |
OLD | NEW |