![]() |
v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#include <mark-compact.h>
Public Types | |
| enum | SlotType { EMBEDDED_OBJECT_SLOT, RELOCATED_CODE_OBJECT, CODE_TARGET_SLOT, CODE_ENTRY_SLOT, DEBUG_TARGET_SLOT, JS_RETURN_SLOT, NUMBER_OF_SLOT_TYPES } |
| enum | AdditionMode { FAIL_ON_OVERFLOW, IGNORE_OVERFLOW } |
| typedef Object ** | ObjectSlot |
Public Member Functions | |
| SlotsBuffer (SlotsBuffer *next_buffer) | |
| ~SlotsBuffer () | |
| void | Add (ObjectSlot slot) |
| void | UpdateSlots (Heap *heap) |
| void | UpdateSlotsWithFilter (Heap *heap) |
| SlotsBuffer * | next () |
| bool | IsFull () |
| bool | HasSpaceForTypedSlot () |
| INLINE (static bool AddTo(SlotsBufferAllocator *allocator, SlotsBuffer **buffer_address, ObjectSlot slot, AdditionMode mode)) | |
Static Public Member Functions | |
| static const char * | SlotTypeToString (SlotType type) |
| static int | SizeOfChain (SlotsBuffer *buffer) |
| static void | UpdateSlotsRecordedIn (Heap *heap, SlotsBuffer *buffer, bool code_slots_filtering_required) |
| static bool | ChainLengthThresholdReached (SlotsBuffer *buffer) |
| static bool | IsTypedSlot (ObjectSlot slot) |
| static bool | AddTo (SlotsBufferAllocator *allocator, SlotsBuffer **buffer_address, SlotType type, Address addr, AdditionMode mode) |
Static Public Attributes | |
| static const int | kNumberOfElements = 1021 |
Definition at line 277 of file mark-compact.h.
| typedef Object** ObjectSlot |
Definition at line 279 of file mark-compact.h.
| enum AdditionMode |
| Enumerator | |
|---|---|
| FAIL_ON_OVERFLOW | |
| IGNORE_OVERFLOW | |
Definition at line 359 of file mark-compact.h.
| enum SlotType |
| Enumerator | |
|---|---|
| EMBEDDED_OBJECT_SLOT | |
| RELOCATED_CODE_OBJECT | |
| CODE_TARGET_SLOT | |
| CODE_ENTRY_SLOT | |
| DEBUG_TARGET_SLOT | |
| JS_RETURN_SLOT | |
| NUMBER_OF_SLOT_TYPES | |
Definition at line 296 of file mark-compact.h.
|
inlineexplicit |
Definition at line 281 of file mark-compact.h.
References v8::internal::NULL.
|
inline |
Definition at line 288 of file mark-compact.h.
|
inline |
Definition at line 291 of file mark-compact.h.
References ASSERT, and SlotsBuffer::kNumberOfElements.
Referenced by SlotsBuffer::AddTo(), and SlotsBuffer::INLINE().
|
static |
Definition at line 4363 of file mark-compact.cc.
References SlotsBuffer::Add(), SlotsBufferAllocator::AllocateBuffer(), ASSERT, SlotsBuffer::ChainLengthThresholdReached(), SlotsBufferAllocator::DeallocateChain(), SlotsBuffer::FAIL_ON_OVERFLOW, SlotsBuffer::HasSpaceForTypedSlot(), and v8::internal::NULL.
Referenced by MarkCompactCollector::MigrateObject(), MarkCompactCollector::RecordCodeEntrySlot(), and MarkCompactCollector::RecordRelocSlot().
|
inlinestatic |
Definition at line 364 of file mark-compact.h.
References v8::internal::NULL.
Referenced by SlotsBuffer::AddTo(), and SlotsBuffer::INLINE().
|
inline |
Definition at line 342 of file mark-compact.h.
References SlotsBuffer::kNumberOfElements.
Referenced by SlotsBuffer::AddTo().
|
inline |
Definition at line 368 of file mark-compact.h.
References SlotsBuffer::Add(), SlotsBufferAllocator::AllocateBuffer(), SlotsBuffer::ChainLengthThresholdReached(), SlotsBufferAllocator::DeallocateChain(), SlotsBuffer::FAIL_ON_OVERFLOW, SlotsBuffer::IsFull(), and v8::internal::NULL.
|
inline |
Definition at line 338 of file mark-compact.h.
References SlotsBuffer::kNumberOfElements.
Referenced by SlotsBuffer::INLINE().
|
static |
Definition at line 4358 of file mark-compact.cc.
References SlotsBuffer::NUMBER_OF_SLOT_TYPES.
Referenced by SlotsBuffer::UpdateSlots(), and SlotsBuffer::UpdateSlotsWithFilter().
|
inline |
Definition at line 330 of file mark-compact.h.
Referenced by SlotsBufferAllocator::DeallocateChain(), and SlotsBuffer::UpdateSlotsRecordedIn().
|
inlinestatic |
Definition at line 332 of file mark-compact.h.
References SlotsBuffer::kNumberOfElements, and v8::internal::NULL.
|
inlinestatic |
Definition at line 306 of file mark-compact.h.
References SlotsBuffer::CODE_ENTRY_SLOT, SlotsBuffer::CODE_TARGET_SLOT, SlotsBuffer::DEBUG_TARGET_SLOT, SlotsBuffer::EMBEDDED_OBJECT_SLOT, SlotsBuffer::JS_RETURN_SLOT, SlotsBuffer::NUMBER_OF_SLOT_TYPES, and SlotsBuffer::RELOCATED_CODE_OBJECT.
| void UpdateSlots | ( | Heap * | heap | ) |
Definition at line 4469 of file mark-compact.cc.
References ASSERT, Heap::isolate(), SlotsBuffer::IsTypedSlot(), and PointersUpdatingVisitor::UpdateSlot().
Referenced by SlotsBuffer::UpdateSlotsRecordedIn().
|
inlinestatic |
Definition at line 346 of file mark-compact.h.
References SlotsBuffer::next(), v8::internal::NULL, SlotsBuffer::UpdateSlots(), and SlotsBuffer::UpdateSlotsWithFilter().
| void UpdateSlotsWithFilter | ( | Heap * | heap | ) |
Definition at line 4488 of file mark-compact.cc.
References ASSERT, Heap::isolate(), SlotsBuffer::IsTypedSlot(), v8::internal::pc, and PointersUpdatingVisitor::UpdateSlot().
Referenced by SlotsBuffer::UpdateSlotsRecordedIn().
|
static |
Definition at line 393 of file mark-compact.h.
Referenced by SlotsBuffer::Add(), SlotsBuffer::HasSpaceForTypedSlot(), SlotsBuffer::IsFull(), and SlotsBuffer::SizeOfChain().