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_HEAP_MARK_COMPACT_H_ | 5 #ifndef V8_HEAP_MARK_COMPACT_H_ |
6 #define V8_HEAP_MARK_COMPACT_H_ | 6 #define V8_HEAP_MARK_COMPACT_H_ |
7 | 7 |
8 #include "src/base/bits.h" | 8 #include "src/base/bits.h" |
9 #include "src/heap/spaces.h" | 9 #include "src/heap/spaces.h" |
10 | 10 |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
409 INLINE(void ForceRecordSlot(HeapObject* object, Object** slot, | 409 INLINE(void ForceRecordSlot(HeapObject* object, Object** slot, |
410 Object* target)); | 410 Object* target)); |
411 | 411 |
412 void UpdateSlots(SlotsBuffer* buffer); | 412 void UpdateSlots(SlotsBuffer* buffer); |
413 void UpdateSlotsRecordedIn(SlotsBuffer* buffer); | 413 void UpdateSlotsRecordedIn(SlotsBuffer* buffer); |
414 | 414 |
415 void MigrateObject(HeapObject* dst, HeapObject* src, int size, | 415 void MigrateObject(HeapObject* dst, HeapObject* src, int size, |
416 AllocationSpace to_old_space, | 416 AllocationSpace to_old_space, |
417 SlotsBuffer** evacuation_slots_buffer); | 417 SlotsBuffer** evacuation_slots_buffer); |
418 | 418 |
419 void MigrateObjectTagged(HeapObject* dst, HeapObject* src, int size, | |
420 SlotsBuffer** evacuation_slots_buffer); | |
421 void MigrateObjectMixed(HeapObject* dst, HeapObject* src, int size, | |
422 SlotsBuffer** evacuation_slots_buffer); | |
423 void MigrateObjectRaw(HeapObject* dst, HeapObject* src, int size); | |
424 | |
425 bool TryPromoteObject(HeapObject* object, int object_size); | 419 bool TryPromoteObject(HeapObject* object, int object_size); |
426 | 420 |
427 void InvalidateCode(Code* code); | 421 void InvalidateCode(Code* code); |
428 | 422 |
429 void ClearMarkbits(); | 423 void ClearMarkbits(); |
430 | 424 |
431 bool is_compacting() const { return compacting_; } | 425 bool is_compacting() const { return compacting_; } |
432 | 426 |
433 MarkingParity marking_parity() { return marking_parity_; } | 427 MarkingParity marking_parity() { return marking_parity_; } |
434 | 428 |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
567 // MarkCompactCollector::Prepare() and is otherwise in its | 561 // MarkCompactCollector::Prepare() and is otherwise in its |
568 // normal state. | 562 // normal state. |
569 // | 563 // |
570 // After: Live objects are marked and non-live objects are unmarked. | 564 // After: Live objects are marked and non-live objects are unmarked. |
571 | 565 |
572 friend class CodeMarkingVisitor; | 566 friend class CodeMarkingVisitor; |
573 friend class MarkCompactMarkingVisitor; | 567 friend class MarkCompactMarkingVisitor; |
574 friend class MarkingVisitor; | 568 friend class MarkingVisitor; |
575 friend class RootMarkingVisitor; | 569 friend class RootMarkingVisitor; |
576 friend class SharedFunctionInfoMarkingVisitor; | 570 friend class SharedFunctionInfoMarkingVisitor; |
577 friend class IncrementalMarkingMarkingVisitor; | 571 friend class IncrementalMarkingMarkingVisitor; |
Hannes Payer (out of office)
2015/11/13 17:00:36
alphabetic order everywhere
Igor Sheludko
2015/11/13 17:35:18
Done.
| |
572 friend class RecordMigratedSlotVisitor; | |
578 | 573 |
579 // Mark code objects that are active on the stack to prevent them | 574 // Mark code objects that are active on the stack to prevent them |
580 // from being flushed. | 575 // from being flushed. |
581 void PrepareThreadForCodeFlushing(Isolate* isolate, ThreadLocalTop* top); | 576 void PrepareThreadForCodeFlushing(Isolate* isolate, ThreadLocalTop* top); |
582 | 577 |
583 void PrepareForCodeFlushing(); | 578 void PrepareForCodeFlushing(); |
584 | 579 |
585 // Marking operations for objects reachable from roots. | 580 // Marking operations for objects reachable from roots. |
586 void MarkLiveObjects(); | 581 void MarkLiveObjects(); |
587 | 582 |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
862 private: | 857 private: |
863 MarkCompactCollector* collector_; | 858 MarkCompactCollector* collector_; |
864 }; | 859 }; |
865 | 860 |
866 | 861 |
867 const char* AllocationSpaceName(AllocationSpace space); | 862 const char* AllocationSpaceName(AllocationSpace space); |
868 } // namespace internal | 863 } // namespace internal |
869 } // namespace v8 | 864 } // namespace v8 |
870 | 865 |
871 #endif // V8_HEAP_MARK_COMPACT_H_ | 866 #endif // V8_HEAP_MARK_COMPACT_H_ |
OLD | NEW |