v8
3.14.5(node0.10.28)
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 () |
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 | AddTo (SlotsBufferAllocator *allocator, SlotsBuffer **buffer_address, ObjectSlot slot, AdditionMode mode) |
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 278 of file mark-compact.h.
typedef Object** ObjectSlot |
Definition at line 280 of file mark-compact.h.
enum AdditionMode |
Enumerator | |
---|---|
FAIL_ON_OVERFLOW | |
IGNORE_OVERFLOW |
Definition at line 360 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 297 of file mark-compact.h.
|
inlineexplicit |
Definition at line 282 of file mark-compact.h.
References v8::internal::NULL.
|
inline |
Definition at line 289 of file mark-compact.h.
|
inline |
Definition at line 292 of file mark-compact.h.
References ASSERT, and SlotsBuffer::kNumberOfElements.
Referenced by SlotsBuffer::AddTo().
|
inlinestatic |
Definition at line 369 of file mark-compact.h.
References SlotsBuffer::Add(), SlotsBufferAllocator::AllocateBuffer(), SlotsBuffer::ChainLengthThresholdReached(), SlotsBufferAllocator::DeallocateChain(), SlotsBuffer::FAIL_ON_OVERFLOW, SlotsBuffer::IsFull(), and v8::internal::NULL.
Referenced by MarkCompactCollector::MigrateObject(), MarkCompactCollector::RecordCodeEntrySlot(), and MarkCompactCollector::RecordRelocSlot().
|
static |
Definition at line 3623 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.
|
inlinestatic |
Definition at line 365 of file mark-compact.h.
References v8::internal::NULL.
Referenced by SlotsBuffer::AddTo().
|
inline |
Definition at line 343 of file mark-compact.h.
References SlotsBuffer::kNumberOfElements.
Referenced by SlotsBuffer::AddTo().
|
inline |
Definition at line 339 of file mark-compact.h.
References SlotsBuffer::kNumberOfElements.
Referenced by SlotsBuffer::AddTo().
|
static |
Definition at line 3618 of file mark-compact.cc.
References SlotsBuffer::NUMBER_OF_SLOT_TYPES.
Referenced by SlotsBuffer::UpdateSlots(), and SlotsBuffer::UpdateSlotsWithFilter().
|
inline |
Definition at line 331 of file mark-compact.h.
Referenced by SlotsBufferAllocator::DeallocateChain(), and SlotsBuffer::UpdateSlotsRecordedIn().
|
inlinestatic |
Definition at line 333 of file mark-compact.h.
References SlotsBuffer::kNumberOfElements, and v8::internal::NULL.
|
inlinestatic |
Definition at line 307 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 3710 of file mark-compact.cc.
References ASSERT, SlotsBuffer::IsTypedSlot(), and PointersUpdatingVisitor::UpdateSlot().
Referenced by SlotsBuffer::UpdateSlotsRecordedIn().
|
inlinestatic |
Definition at line 347 of file mark-compact.h.
References SlotsBuffer::next(), v8::internal::NULL, SlotsBuffer::UpdateSlots(), and SlotsBuffer::UpdateSlotsWithFilter().
void UpdateSlotsWithFilter | ( | Heap * | heap | ) |
Definition at line 3728 of file mark-compact.cc.
References ASSERT, SlotsBuffer::IsTypedSlot(), v8::internal::pc, and PointersUpdatingVisitor::UpdateSlot().
Referenced by SlotsBuffer::UpdateSlotsRecordedIn().
|
static |
Definition at line 394 of file mark-compact.h.
Referenced by SlotsBuffer::Add(), SlotsBuffer::HasSpaceForTypedSlot(), SlotsBuffer::IsFull(), and SlotsBuffer::SizeOfChain().