v8  3.25.30(node0.11.13)
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 ()
 
 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
 

Detailed Description

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

Member Typedef Documentation

typedef Object** ObjectSlot

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

Member Enumeration Documentation

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.

Constructor & Destructor Documentation

SlotsBuffer ( SlotsBuffer next_buffer)
inlineexplicit

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

References v8::internal::NULL.

~SlotsBuffer ( )
inline

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

Member Function Documentation

void Add ( ObjectSlot  slot)
inline

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

References ASSERT, and SlotsBuffer::kNumberOfElements.

Referenced by SlotsBuffer::AddTo(), and SlotsBuffer::INLINE().

static bool ChainLengthThresholdReached ( SlotsBuffer buffer)
inlinestatic

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

References v8::internal::NULL.

Referenced by SlotsBuffer::AddTo(), and SlotsBuffer::INLINE().

bool HasSpaceForTypedSlot ( )
inline

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

References SlotsBuffer::kNumberOfElements.

Referenced by SlotsBuffer::AddTo().

INLINE ( static bool   AddToSlotsBufferAllocator *allocator,SlotsBuffer **buffer_address,ObjectSlot slot,AdditionMode mode)
inline
bool IsFull ( )
inline

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

References SlotsBuffer::kNumberOfElements.

Referenced by SlotsBuffer::INLINE().

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

Definition at line 332 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: