Classes | Enumerations | Functions | Variables

js::gc Namespace Reference

Classes

struct  Cell
struct  FreeCell
struct  ArenaHeader
union  ThingOrCell
struct  Things
struct  Things< T, N, 0 >
struct  Arena
struct  ArenaBitmap
struct  MarkingDelay
struct  EmptyArenaLists
struct  ChunkInfo
struct  Chunk
struct  ArenaList
struct  FreeLists
struct  ConservativeGCStats

Enumerations

enum  FinalizeKind {
  FINALIZE_OBJECT0, FINALIZE_OBJECT2, FINALIZE_OBJECT4, FINALIZE_OBJECT8,
  FINALIZE_OBJECT12, FINALIZE_OBJECT16, FINALIZE_OBJECT_LAST = FINALIZE_OBJECT16, FINALIZE_FUNCTION,
  FINALIZE_SHORT_STRING, FINALIZE_STRING, FINALIZE_EXTERNAL_STRING, FINALIZE_LIMIT
}
enum  ConservativeGCTest {
  CGCT_VALID, CGCT_VALIDWITHOFFSET, CGCT_LOWBITSET, CGCT_NOTARENA,
  CGCT_NOTCHUNK, CGCT_FREEARENA, CGCT_WRONGTAG, CGCT_NOTLIVE,
  CGCT_END
}

Functions

 JS_STATIC_ASSERT (sizeof(FreeCell)==8)
void js_static_assert (int arg[(sizeof(Arena< FreeCell >)==4096)?1:-1])
void js_static_assert (int arg[(Arena< FreeCell >::ArenaSize%Cell::CellSize==0)?1:-1])
void js_static_assert (int arg[(ArenaBitmap::BitCount%(8 *8)==0)?1:-1])
void js_static_assert (int arg[(sizeof(Chunk)<=GC_CHUNK_SIZE)?1:-1])
void js_static_assert (int arg[(sizeof(Chunk)+Chunk::BytesPerArena > GC_CHUNK_SIZE)?1:-1])
bool SetProtoCheckingForCycles (JSContext *cx, JSObject *obj, JSObject *proto)
JSCompartmentNewCompartment (JSContext *cx, JSPrincipals *principals)

Variables

const uintN JS_FINALIZE_OBJECT_LIMIT = 6
const size_t GC_ARENA_ALLOCATION_TRIGGER = 30 * js::GC_CHUNK_SIZE
const float GC_HEAP_GROWTH_FACTOR = 3.0f

Enumeration Type Documentation

Enumerator:
CGCT_VALID 
CGCT_VALIDWITHOFFSET 
CGCT_LOWBITSET 
CGCT_NOTARENA 
CGCT_NOTCHUNK 
CGCT_FREEARENA 
CGCT_WRONGTAG 
CGCT_NOTLIVE 
CGCT_END 
Enumerator:
FINALIZE_OBJECT0 
FINALIZE_OBJECT2 
FINALIZE_OBJECT4 
FINALIZE_OBJECT8 
FINALIZE_OBJECT12 
FINALIZE_OBJECT16 
FINALIZE_OBJECT_LAST 
FINALIZE_FUNCTION 
FINALIZE_SHORT_STRING 
FINALIZE_STRING 
FINALIZE_EXTERNAL_STRING 
FINALIZE_LIMIT 

Function Documentation

void js::gc::js_static_assert ( int  arg[(sizeof(Arena< FreeCell >)==4096)?1:-1]  ) 
void js::gc::js_static_assert ( int  arg[(sizeof(Chunk)<=GC_CHUNK_SIZE)?1:-1]  ) 
void js::gc::js_static_assert ( int  arg[(Arena< FreeCell >::ArenaSize%Cell::CellSize==0)?1:-1]  ) 
void js::gc::js_static_assert ( int  arg[(ArenaBitmap::BitCount%(8 *8)==0)?1:-1]  ) 
js::gc::JS_STATIC_ASSERT ( sizeof(FreeCell)  = =8  ) 
void js::gc::js_static_assert ( int  arg[(sizeof(Chunk)+Chunk::BytesPerArena > GC_CHUNK_SIZE)?1:-1]  ) 
JSCompartment* js::gc::NewCompartment ( JSContext cx,
JSPrincipals principals 
)
bool js::gc::SetProtoCheckingForCycles ( JSContext cx,
JSObject obj,
JSObject proto 
)

Variable Documentation

const float js::gc::GC_HEAP_GROWTH_FACTOR = 3.0f