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 <deque> | 8 #include <deque> |
9 | 9 |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
483 // when mark bits are still intact. | 483 // when mark bits are still intact. |
484 bool IsSlotInBlackObject(MemoryChunk* p, Address slot); | 484 bool IsSlotInBlackObject(MemoryChunk* p, Address slot); |
485 HeapObject* FindBlackObjectBySlotSlow(Address slot); | 485 HeapObject* FindBlackObjectBySlotSlow(Address slot); |
486 | 486 |
487 // Removes all the slots in the slot buffers that are within the given | 487 // Removes all the slots in the slot buffers that are within the given |
488 // address range. | 488 // address range. |
489 void RemoveObjectSlots(Address start_slot, Address end_slot); | 489 void RemoveObjectSlots(Address start_slot, Address end_slot); |
490 | 490 |
491 Sweeper& sweeper() { return sweeper_; } | 491 Sweeper& sweeper() { return sweeper_; } |
492 | 492 |
| 493 bool RequiresImmediateWrapperProcessing(); |
| 494 |
493 void RegisterWrappersWithEmbedderHeapTracer(); | 495 void RegisterWrappersWithEmbedderHeapTracer(); |
494 | 496 |
495 void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer); | 497 void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer); |
496 | 498 |
497 EmbedderHeapTracer* embedder_heap_tracer() { return embedder_heap_tracer_; } | 499 EmbedderHeapTracer* embedder_heap_tracer() { return embedder_heap_tracer_; } |
498 | 500 |
499 bool UsingEmbedderHeapTracer() { return embedder_heap_tracer(); } | 501 bool UsingEmbedderHeapTracer() { return embedder_heap_tracer(); } |
500 | 502 |
501 void TracePossibleWrapper(JSObject* js_object); | 503 void TracePossibleWrapper(JSObject* js_object); |
502 | 504 |
| 505 size_t wrappers_to_trace() { return wrappers_to_trace_.size(); } |
| 506 |
503 private: | 507 private: |
504 class EvacuateNewSpacePageVisitor; | 508 class EvacuateNewSpacePageVisitor; |
505 class EvacuateNewSpaceVisitor; | 509 class EvacuateNewSpaceVisitor; |
506 class EvacuateOldSpaceVisitor; | 510 class EvacuateOldSpaceVisitor; |
507 class EvacuateRecordOnlyVisitor; | 511 class EvacuateRecordOnlyVisitor; |
508 class EvacuateVisitorBase; | 512 class EvacuateVisitorBase; |
509 class HeapObjectVisitor; | 513 class HeapObjectVisitor; |
510 class ObjectStatsVisitor; | 514 class ObjectStatsVisitor; |
511 | 515 |
512 explicit MarkCompactCollector(Heap* heap); | 516 explicit MarkCompactCollector(Heap* heap); |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
767 private: | 771 private: |
768 MarkCompactCollector* collector_; | 772 MarkCompactCollector* collector_; |
769 }; | 773 }; |
770 | 774 |
771 | 775 |
772 const char* AllocationSpaceName(AllocationSpace space); | 776 const char* AllocationSpaceName(AllocationSpace space); |
773 } // namespace internal | 777 } // namespace internal |
774 } // namespace v8 | 778 } // namespace v8 |
775 | 779 |
776 #endif // V8_HEAP_MARK_COMPACT_H_ | 780 #endif // V8_HEAP_MARK_COMPACT_H_ |
OLD | NEW |