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
heap.h File Reference
#include <math.h>
#include "allocation.h"
#include "globals.h"
#include "incremental-marking.h"
#include "list.h"
#include "mark-compact.h"
#include "objects-visiting.h"
#include "spaces.h"
#include "splay-tree-inl.h"
#include "store-buffer.h"
#include "v8-counters.h"
#include "v8globals.h"
Include dependency graph for heap.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  StoreBufferRebuilder
 
class  PromotionQueue
 
class  ExternalStringTable
 
class  Heap
 
class  Heap::RelocationLock
 
class  HeapStats
 
class  DisallowAllocationFailure
 
class  AlwaysAllocateScope
 
class  VerifyPointersVisitor
 
class  BASE_EMBEDDED< Visitor >
 
class  BASE_EMBEDDED< Visitor >
 
class  BASE_EMBEDDED< Visitor >
 
class  SpaceIterator
 
class  BASE_EMBEDDED< Visitor >
 
class  KeyedLookupCache
 
class  DescriptorLookupCache
 
class  AssertNoAllocation
 
class  DisableAssertNoAllocation
 
class  BASE_EMBEDDED< Visitor >
 
class  RegExpResultsCache
 
class  TranscendentalCache
 
class  WeakObjectRetainer
 
class  IntrusiveMarking
 

Namespaces

 v8
 
 v8::internal
 

Macros

#define STRONG_ROOT_LIST(V)
 
#define ROOT_LIST(V)
 
#define SYMBOL_LIST(V)
 
#define ROOT_ACCESSOR(type, name, camel_name)
 
#define STRUCT_MAP_ACCESSOR(NAME, Name, name)
 
#define SYMBOL_ACCESSOR(name, str)
 
#define ROOT_INDEX_DECLARATION(type, name, camel_name)   k##camel_name##RootIndex,
 
#define SYMBOL_INDEX_DECLARATION(name, str)   k##name##RootIndex,
 
#define DECLARE_STRUCT_MAP(NAME, Name, name)   k##Name##MapRootIndex,
 
#define ROOT_ACCESSOR(type, name, camel_name)
 

Typedefs

typedef String *(* ExternalStringTableUpdaterCallback )(Heap *heap, Object **pointer)
 
typedef void(* ScavengingCallback )(Map *map, HeapObject **slot, HeapObject *object)
 

Enumerations

enum  ArrayStorageAllocationMode { DONT_INITIALIZE_ARRAY_ELEMENTS, INITIALIZE_ARRAY_ELEMENTS_WITH_HOLE }
 

Macro Definition Documentation

#define DECLARE_STRUCT_MAP (   NAME,
  Name,
  name 
)    k##Name##MapRootIndex,

Definition at line 1436 of file heap.h.

#define ROOT_ACCESSOR (   type,
  name,
  camel_name 
)
Value:
type* name() { \
return type::cast(roots_[k##camel_name##RootIndex]); \
} \
type* raw_unchecked_##name() { \
return reinterpret_cast<type*>(roots_[k##camel_name##RootIndex]); \
}

Definition at line 1763 of file heap.h.

#define ROOT_ACCESSOR (   type,
  name,
  camel_name 
)
Value:
inline void set_##name(type* value) { \
/* The deserializer makes use of the fact that these common roots are */ \
/* never in new space and never on a page that is being compacted. */ \
ASSERT(k##camel_name##RootIndex >= kOldSpaceRoots || !InNewSpace(value)); \
roots_[k##camel_name##RootIndex] = value; \
}
#define ASSERT(condition)
Definition: checks.h:270

Definition at line 1763 of file heap.h.

#define ROOT_INDEX_DECLARATION (   type,
  name,
  camel_name 
)    k##camel_name##RootIndex,

Definition at line 1427 of file heap.h.

#define ROOT_LIST (   V)
Value:
V(SymbolTable, symbol_table, SymbolTable)
#define STRONG_ROOT_LIST(V)
Definition: heap.h:49

Definition at line 159 of file heap.h.

#define STRONG_ROOT_LIST (   V)

Definition at line 49 of file heap.h.

#define STRUCT_MAP_ACCESSOR (   NAME,
  Name,
  name 
)
Value:
Map* name##_map() { \
return Map::cast(roots_[k##Name##MapRootIndex]); \
}

Definition at line 1169 of file heap.h.

#define SYMBOL_ACCESSOR (   name,
  str 
)
Value:
String* name() { \
return String::cast(roots_[k##name##RootIndex]); \
}

Definition at line 1176 of file heap.h.

#define SYMBOL_INDEX_DECLARATION (   name,
  str 
)    k##name##RootIndex,

Definition at line 1431 of file heap.h.

#define SYMBOL_LIST (   V)

Definition at line 163 of file heap.h.