v8  3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SlotsBuffer Class Reference

#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)
 
SlotsBuffernext ()
 
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
 

Detailed Description

Definition at line 278 of file mark-compact.h.

Member Typedef Documentation

typedef Object** ObjectSlot

Definition at line 280 of file mark-compact.h.

Member Enumeration Documentation

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.

Constructor & Destructor Documentation

SlotsBuffer ( SlotsBuffer next_buffer)
inlineexplicit

Definition at line 282 of file mark-compact.h.

References v8::internal::NULL.

~SlotsBuffer ( )
inline

Definition at line 289 of file mark-compact.h.

Member Function Documentation

void Add ( ObjectSlot  slot)
inline

Definition at line 292 of file mark-compact.h.

References ASSERT, and SlotsBuffer::kNumberOfElements.

Referenced by SlotsBuffer::AddTo().

static bool ChainLengthThresholdReached ( SlotsBuffer buffer)
inlinestatic

Definition at line 365 of file mark-compact.h.

References v8::internal::NULL.

Referenced by SlotsBuffer::AddTo().

bool HasSpaceForTypedSlot ( )
inline

Definition at line 343 of file mark-compact.h.

References SlotsBuffer::kNumberOfElements.

Referenced by SlotsBuffer::AddTo().

bool IsFull ( )
inline

Definition at line 339 of file mark-compact.h.

References SlotsBuffer::kNumberOfElements.

Referenced by SlotsBuffer::AddTo().

bool IsTypedSlot ( ObjectSlot  slot)
static
SlotsBuffer* next ( )
inline
static int SizeOfChain ( SlotsBuffer buffer)
inlinestatic

Definition at line 333 of file mark-compact.h.

References SlotsBuffer::kNumberOfElements, and v8::internal::NULL.

void UpdateSlots ( Heap heap)
static void UpdateSlotsRecordedIn ( Heap heap,
SlotsBuffer buffer,
bool  code_slots_filtering_required 
)
inlinestatic
void UpdateSlotsWithFilter ( Heap heap)

Field Documentation

const int kNumberOfElements = 1021
static

The documentation for this class was generated from the following files: