void MarkIdRoot(JSTracer *trc, jsid *id, const char *name) { JS_ROOT_MARKING_ASSERT(trc); JS_SET_TRACING_NAME(trc, name); MarkIdInternal(trc, id); }
static void MarkRoot(JSTracer *trc, T **thingp, const char *name) { JS_ROOT_MARKING_ASSERT(trc); JS_SET_TRACING_NAME(trc, name); MarkInternal(trc, *thingp); }
void MarkValueRoot(JSTracer *trc, Value *v, const char *name) { JS_ROOT_MARKING_ASSERT(trc); JS_SET_TRACING_NAME(trc, name); MarkValueInternal(trc, v); }
void MarkGCThingInternal(JSTracer *trc, void **thingp, const char *name) { JS_SET_TRACING_NAME(trc, name); JS_ASSERT(thingp); if (!*thingp) return; MarkKind(trc, thingp, GetGCThingTraceKind(*thingp)); }
void MarkGCThingRoot(JSTracer *trc, void *thing, const char *name) { JS_ROOT_MARKING_ASSERT(trc); JS_SET_TRACING_NAME(trc, name); if (!thing) return; MarkKind(trc, thing, GetGCThingTraceKind(thing)); }
void MarkTypeRoot(JSTracer *trc, types::Type *v, const char *name) { JS_ROOT_MARKING_ASSERT(trc); JS_SET_TRACING_NAME(trc, name); if (v->isSingleObject()) { JSObject *obj = v->singleObject(); MarkInternal(trc, &obj); *v = types::Type::ObjectType(obj); } else if (v->isTypeObject()) { types::TypeObject *typeObj = v->typeObject(); MarkInternal(trc, &typeObj); *v = types::Type::ObjectType(typeObj); } }
void MarkValueUnbarriered(JSTracer *trc, Value *v, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkValueInternal(trc, v); }
void MarkObject(JSTracer *trc, HeapPtr<GlobalObject, JSScript *> *thingp, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkInternal(trc, thingp->unsafeGet()); }
void MarkSlot(JSTracer *trc, HeapSlot *s, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkValueInternal(trc, s->unsafeGet()); }
void MarkValue(JSTracer *trc, HeapValue *v, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkValueInternal(trc, v->unsafeGet()); }
void MarkId(JSTracer *trc, HeapId *id, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkIdInternal(trc, id->unsafeGet()); }
static void Mark(JSTracer *trc, HeapPtr<T> *thing, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkInternal(trc, thing->unsafeGet()); }
static void MarkUnbarriered(JSTracer *trc, T **thingp, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkInternal(trc, thingp); }
void MarkIdUnbarriered(JSTracer *trc, jsid *id, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkIdInternal(trc, id); }