Classes | Public Member Functions | Public Attributes | Static Public Attributes

js::gc::Arena< T > Struct Template Reference

#include <jsgc.h>

Collaboration diagram for js::gc::Arena< T >:

List of all members.

Classes

struct  AlignedArenaHeader

Public Member Functions

Chunkchunk () const
size_t arenaIndex () const
ArenaHeaderheader ()
MarkingDelaygetMarkingDelay () const
ArenaBitmapbitmap () const
ConservativeGCTest mark (T *thing, JSTracer *trc)
void markDelayedChildren (JSTracer *trc)
bool inFreeList (void *thing) const
T * getAlignedThing (void *thing)
void init (JSCompartment *compartment, unsigned thingKind)

Public Attributes

union {
   ArenaHeader   aheader
   AlignedArenaHeader   align
}; 
Things< T, ThingsPerArena,
FillerSize
t

Static Public Attributes

static const size_t ArenaSize = 4096
static const size_t ThingsPerArena = (ArenaSize - sizeof(AlignedArenaHeader)) / sizeof(T)
static const size_t FillerSize = ArenaSize - sizeof(AlignedArenaHeader) - sizeof(T) * ThingsPerArena

template<typename T>
struct js::gc::Arena< T >


Member Function Documentation

template<typename T >
size_t js::gc::Arena< T >::arenaIndex (  )  const [inline]
template<typename T >
ArenaBitmap * js::gc::Arena< T >::bitmap (  )  const [inline]
template<typename T >
Chunk * js::gc::Arena< T >::chunk (  )  const [inline]
template<typename T >
T * js::gc::Arena< T >::getAlignedThing ( void *  thing  )  [inline]
template<typename T >
MarkingDelay * js::gc::Arena< T >::getMarkingDelay (  )  const [inline]
template<typename T>
ArenaHeader* js::gc::Arena< T >::header (  )  [inline]
template<typename T>
bool js::gc::Arena< T >::inFreeList ( void *  thing  )  const [inline]
template<typename T>
void js::gc::Arena< T >::init ( JSCompartment compartment,
unsigned  thingKind 
)
template<typename T>
ConservativeGCTest js::gc::Arena< T >::mark ( T *  thing,
JSTracer trc 
) [inline]
template<typename T>
void js::gc::Arena< T >::markDelayedChildren ( JSTracer trc  ) 

Member Data Documentation

union { ... }
template<typename T>
ArenaHeader js::gc::Arena< T >::aheader
template<typename T>
AlignedArenaHeader js::gc::Arena< T >::align
template<typename T>
const size_t js::gc::Arena< T >::ArenaSize = 4096 [static]
template<typename T>
const size_t js::gc::Arena< T >::FillerSize = ArenaSize - sizeof(AlignedArenaHeader) - sizeof(T) * ThingsPerArena [static]
template<typename T>
Things<T, ThingsPerArena, FillerSize> js::gc::Arena< T >::t
template<typename T>
const size_t js::gc::Arena< T >::ThingsPerArena = (ArenaSize - sizeof(AlignedArenaHeader)) / sizeof(T) [static]

The documentation for this struct was generated from the following file: