Sourceforge.net - The VCF's Project Host
   The VCF Website Home   |   Online Discussion Forums   |   Sourceforge.net Project Page   

vcf/JavaScriptKit/js-impl/jsgc.h File Reference


Classes

struct  JSPtrTable
struct  JSGCThing
struct  JSGCArenaList

Defines

#define GCX_OBJECT   0
#define GCX_STRING   1
#define GCX_DOUBLE   2
#define GCX_MUTABLE_STRING   3
#define GCX_PRIVATE   4
#define GCX_NAMESPACE   5
#define GCX_QNAME   6
#define GCX_XML   7
#define GCX_EXTERNAL_STRING   8
#define GCX_NTYPES_LOG2   4
#define GCX_NTYPES   JS_BIT(GCX_NTYPES_LOG2)
#define GCF_TYPEMASK   JS_BITMASK(GCX_NTYPES_LOG2)
#define GCF_MARK   JS_BIT(GCX_NTYPES_LOG2)
#define GCF_FINAL   JS_BIT(GCX_NTYPES_LOG2 + 1)
#define GCF_SYSTEM   JS_BIT(GCX_NTYPES_LOG2 + 2)
#define GCF_LOCKSHIFT   (GCX_NTYPES_LOG2 + 3)
#define GCF_LOCK   JS_BIT(GCF_LOCKSHIFT)
#define GCF_MUTABLE   2
#define GC_POKE(cx, oldval)   ((cx)->runtime->gcPoke = JS_TRUE)
#define GC_NBYTES_MAX   (10 * sizeof(JSGCThing))
#define GC_NUM_FREELISTS   (GC_NBYTES_MAX / sizeof(JSGCThing))
#define GC_FREELIST_NBYTES(i)   (((i) + 1) * sizeof(JSGCThing))
#define GC_FREELIST_INDEX(n)   (((n) / sizeof(JSGCThing)) - 1)
#define GC_MARK_ATOM(cx, atom)
#define GC_MARK(cx, thing, name)   js_MarkGCThing(cx, thing)

Typedefs

typedef JSGCArena JSGCArena
typedef JSGCArenaList JSGCArenaList

Enumerations

enum  JSGCInvocationKind { GC_NORMAL, GC_LAST_CONTEXT, GC_LAST_DITCH }

Functions

uint8js_GetGCThingFlags (void *thing)
JSRuntimejs_GetGCStringRuntime (JSString *str)
intN js_ChangeExternalStringFinalizer (JSStringFinalizeOp oldop, JSStringFinalizeOp newop)
JSBool js_InitGC (JSRuntime *rt, uint32 maxbytes)
void js_FinishGC (JSRuntime *rt)
JSBool js_AddRoot (JSContext *cx, void *rp, const char *name)
JSBool js_AddRootRT (JSRuntime *rt, void *rp, const char *name)
JSBool js_RemoveRoot (JSRuntime *rt, void *rp)
uint32 js_MapGCRoots (JSRuntime *rt, JSGCRootMapFun map, void *data)
JSBool js_RegisterCloseableIterator (JSContext *cx, JSObject *obj)
void * js_NewGCThing (JSContext *cx, uintN flags, size_t nbytes)
JSBool js_LockGCThing (JSContext *cx, void *thing)
JSBool js_LockGCThingRT (JSRuntime *rt, void *thing)
JSBool js_UnlockGCThingRT (JSRuntime *rt, void *thing)
JSBool js_IsAboutToBeFinalized (JSContext *cx, void *thing)
void js_MarkAtom (JSContext *cx, JSAtom *atom)
void js_MarkGCThing (JSContext *cx, void *thing)
void js_MarkStackFrame (JSContext *cx, JSStackFrame *fp)
void js_GC (JSContext *cx, JSGCInvocationKind gckind)
void js_UpdateMallocCounter (JSContext *cx, size_t nbytes)

Define Documentation

#define GC_FREELIST_INDEX n   )     (((n) / sizeof(JSGCThing)) - 1)
 

#define GC_FREELIST_NBYTES i   )     (((i) + 1) * sizeof(JSGCThing))
 

#define GC_MARK cx,
thing,
name   )     js_MarkGCThing(cx, thing)
 

#define GC_MARK_ATOM cx,
atom   ) 
 

Value:

#define GC_NBYTES_MAX   (10 * sizeof(JSGCThing))
 

#define GC_NUM_FREELISTS   (GC_NBYTES_MAX / sizeof(JSGCThing))
 

#define GC_POKE cx,
oldval   )     ((cx)->runtime->gcPoke = JS_TRUE)
 

#define GCF_FINAL   JS_BIT(GCX_NTYPES_LOG2 + 1)
 

#define GCF_LOCK   JS_BIT(GCF_LOCKSHIFT)
 

#define GCF_LOCKSHIFT   (GCX_NTYPES_LOG2 + 3)
 

#define GCF_MARK   JS_BIT(GCX_NTYPES_LOG2)
 

#define GCF_MUTABLE   2
 

#define GCF_SYSTEM   JS_BIT(GCX_NTYPES_LOG2 + 2)
 

#define GCF_TYPEMASK   JS_BITMASK(GCX_NTYPES_LOG2)
 

#define GCX_DOUBLE   2
 

#define GCX_EXTERNAL_STRING   8
 

#define GCX_MUTABLE_STRING   3
 

#define GCX_NAMESPACE   5
 

#define GCX_NTYPES   JS_BIT(GCX_NTYPES_LOG2)
 

#define GCX_NTYPES_LOG2   4
 

#define GCX_OBJECT   0
 

#define GCX_PRIVATE   4
 

#define GCX_QNAME   6
 

#define GCX_STRING   1
 

#define GCX_XML   7
 


Typedef Documentation

typedef struct JSGCArena JSGCArena
 

typedef struct JSGCArenaList JSGCArenaList
 


Enumeration Type Documentation

enum JSGCInvocationKind
 

Enumerator:
GC_NORMAL 
GC_LAST_CONTEXT 
GC_LAST_DITCH 


Function Documentation

JSBool js_AddRoot JSContext cx,
void *  rp,
const char *  name
 

JSBool js_AddRootRT JSRuntime rt,
void *  rp,
const char *  name
 

intN js_ChangeExternalStringFinalizer JSStringFinalizeOp  oldop,
JSStringFinalizeOp  newop
 

void js_FinishGC JSRuntime rt  ) 
 

void js_GC JSContext cx,
JSGCInvocationKind  gckind
 

JSRuntime* js_GetGCStringRuntime JSString str  ) 
 

uint8* js_GetGCThingFlags void *  thing  ) 
 

JSBool js_InitGC JSRuntime rt,
uint32  maxbytes
 

JSBool js_IsAboutToBeFinalized JSContext cx,
void *  thing
 

JSBool js_LockGCThing JSContext cx,
void *  thing
 

JSBool js_LockGCThingRT JSRuntime rt,
void *  thing
 

uint32 js_MapGCRoots JSRuntime rt,
JSGCRootMapFun  map,
void *  data
 

void js_MarkAtom JSContext cx,
JSAtom atom
 

void js_MarkGCThing JSContext cx,
void *  thing
 

void js_MarkStackFrame JSContext cx,
JSStackFrame fp
 

void* js_NewGCThing JSContext cx,
uintN  flags,
size_t  nbytes
 

JSBool js_RegisterCloseableIterator JSContext cx,
JSObject obj
 

JSBool js_RemoveRoot JSRuntime rt,
void *  rp
 

JSBool js_UnlockGCThingRT JSRuntime rt,
void *  thing
 

void js_UpdateMallocCounter JSContext cx,
size_t  nbytes
 

   Comments or Suggestions?    License Information