| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_OBJECTS_VISITING_INL_H_ | 5 #ifndef V8_OBJECTS_VISITING_INL_H_ |
| 6 #define V8_OBJECTS_VISITING_INL_H_ | 6 #define V8_OBJECTS_VISITING_INL_H_ |
| 7 | 7 |
| 8 #include "src/heap/array-buffer-tracker.h" | 8 #include "src/heap/array-buffer-tracker.h" |
| 9 #include "src/heap/objects-visiting.h" | 9 #include "src/heap/objects-visiting.h" |
| 10 #include "src/ic/ic-state.h" | 10 #include "src/ic/ic-state.h" |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 | 141 |
| 142 table_.Register(kVisitNativeContext, &VisitNativeContext); | 142 table_.Register(kVisitNativeContext, &VisitNativeContext); |
| 143 | 143 |
| 144 table_.Register( | 144 table_.Register( |
| 145 kVisitAllocationSite, | 145 kVisitAllocationSite, |
| 146 &FixedBodyVisitor<StaticVisitor, AllocationSite::MarkingBodyDescriptor, | 146 &FixedBodyVisitor<StaticVisitor, AllocationSite::MarkingBodyDescriptor, |
| 147 void>::Visit); | 147 void>::Visit); |
| 148 | 148 |
| 149 table_.Register(kVisitByteArray, &DataObjectVisitor::Visit); | 149 table_.Register(kVisitByteArray, &DataObjectVisitor::Visit); |
| 150 | 150 |
| 151 table_.Register( | 151 table_.Register(kVisitBytecodeArray, &VisitBytecodeArray); |
| 152 kVisitBytecodeArray, | |
| 153 &FixedBodyVisitor<StaticVisitor, BytecodeArray::MarkingBodyDescriptor, | |
| 154 void>::Visit); | |
| 155 | 152 |
| 156 table_.Register(kVisitFreeSpace, &DataObjectVisitor::Visit); | 153 table_.Register(kVisitFreeSpace, &DataObjectVisitor::Visit); |
| 157 | 154 |
| 158 table_.Register(kVisitSeqOneByteString, &DataObjectVisitor::Visit); | 155 table_.Register(kVisitSeqOneByteString, &DataObjectVisitor::Visit); |
| 159 | 156 |
| 160 table_.Register(kVisitSeqTwoByteString, &DataObjectVisitor::Visit); | 157 table_.Register(kVisitSeqTwoByteString, &DataObjectVisitor::Visit); |
| 161 | 158 |
| 162 table_.Register(kVisitJSWeakCollection, &VisitWeakCollection); | 159 table_.Register(kVisitJSWeakCollection, &VisitWeakCollection); |
| 163 | 160 |
| 164 table_.Register( | 161 table_.Register( |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 target->ic_age() != heap->global_ic_age())) { | 267 target->ic_age() != heap->global_ic_age())) { |
| 271 ICUtility::Clear(heap->isolate(), rinfo->pc(), | 268 ICUtility::Clear(heap->isolate(), rinfo->pc(), |
| 272 rinfo->host()->constant_pool()); | 269 rinfo->host()->constant_pool()); |
| 273 target = Code::GetCodeFromTargetAddress(rinfo->target_address()); | 270 target = Code::GetCodeFromTargetAddress(rinfo->target_address()); |
| 274 } | 271 } |
| 275 Code* host = rinfo->host(); | 272 Code* host = rinfo->host(); |
| 276 heap->mark_compact_collector()->RecordRelocSlot(host, rinfo, target); | 273 heap->mark_compact_collector()->RecordRelocSlot(host, rinfo, target); |
| 277 StaticVisitor::MarkObject(heap, target); | 274 StaticVisitor::MarkObject(heap, target); |
| 278 } | 275 } |
| 279 | 276 |
| 280 | |
| 281 template <typename StaticVisitor> | 277 template <typename StaticVisitor> |
| 282 void StaticMarkingVisitor<StaticVisitor>::VisitCodeAgeSequence( | 278 void StaticMarkingVisitor<StaticVisitor>::VisitCodeAgeSequence( |
| 283 Heap* heap, RelocInfo* rinfo) { | 279 Heap* heap, RelocInfo* rinfo) { |
| 284 DCHECK(RelocInfo::IsCodeAgeSequence(rinfo->rmode())); | 280 DCHECK(RelocInfo::IsCodeAgeSequence(rinfo->rmode())); |
| 285 Code* target = rinfo->code_age_stub(); | 281 Code* target = rinfo->code_age_stub(); |
| 286 DCHECK(target != NULL); | 282 DCHECK(target != NULL); |
| 287 Code* host = rinfo->host(); | 283 Code* host = rinfo->host(); |
| 288 heap->mark_compact_collector()->RecordRelocSlot(host, rinfo, target); | 284 heap->mark_compact_collector()->RecordRelocSlot(host, rinfo, target); |
| 289 StaticVisitor::MarkObject(heap, target); | 285 StaticVisitor::MarkObject(heap, target); |
| 290 } | 286 } |
| 291 | 287 |
| 288 template <typename StaticVisitor> |
| 289 void StaticMarkingVisitor<StaticVisitor>::VisitBytecodeArray( |
| 290 Map* map, HeapObject* object) { |
| 291 FixedBodyVisitor<StaticVisitor, BytecodeArray::MarkingBodyDescriptor, |
| 292 void>::Visit(map, object); |
| 293 BytecodeArray::cast(object)->MakeOlder(); |
| 294 } |
| 292 | 295 |
| 293 template <typename StaticVisitor> | 296 template <typename StaticVisitor> |
| 294 void StaticMarkingVisitor<StaticVisitor>::VisitNativeContext( | 297 void StaticMarkingVisitor<StaticVisitor>::VisitNativeContext( |
| 295 Map* map, HeapObject* object) { | 298 Map* map, HeapObject* object) { |
| 296 FixedBodyVisitor<StaticVisitor, Context::MarkCompactBodyDescriptor, | 299 FixedBodyVisitor<StaticVisitor, Context::MarkCompactBodyDescriptor, |
| 297 void>::Visit(map, object); | 300 void>::Visit(map, object); |
| 298 } | 301 } |
| 299 | 302 |
| 300 | 303 |
| 301 template <typename StaticVisitor> | 304 template <typename StaticVisitor> |
| (...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 typedef FlexibleBodyVisitor<StaticVisitor, JSFunction::BodyDescriptorWeakCode, | 651 typedef FlexibleBodyVisitor<StaticVisitor, JSFunction::BodyDescriptorWeakCode, |
| 649 void> JSFunctionWeakCodeBodyVisitor; | 652 void> JSFunctionWeakCodeBodyVisitor; |
| 650 JSFunctionWeakCodeBodyVisitor::Visit(map, object); | 653 JSFunctionWeakCodeBodyVisitor::Visit(map, object); |
| 651 } | 654 } |
| 652 | 655 |
| 653 | 656 |
| 654 } // namespace internal | 657 } // namespace internal |
| 655 } // namespace v8 | 658 } // namespace v8 |
| 656 | 659 |
| 657 #endif // V8_OBJECTS_VISITING_INL_H_ | 660 #endif // V8_OBJECTS_VISITING_INL_H_ |
| OLD | NEW |