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().