static void _chimp_task_mark (ChimpGC *gc, ChimpRef *self) { ChimpTaskInternal *task = CHIMP_TASK(self)->priv; chimp_gc_mark_ref (gc, task->method); chimp_gc_mark_ref (gc, task->modules); }
static void _chimp_symtable_mark (ChimpGC *gc, ChimpRef *self) { CHIMP_SUPER (self)->mark (gc, self); chimp_gc_mark_ref (gc, CHIMP_SYMTABLE(self)->filename); chimp_gc_mark_ref (gc, CHIMP_SYMTABLE(self)->lookup); chimp_gc_mark_ref (gc, CHIMP_SYMTABLE(self)->stack); chimp_gc_mark_ref (gc, CHIMP_SYMTABLE(self)->ste); }
static void _chimp_symtable_entry_mark (ChimpGC *gc, ChimpRef *self) { CHIMP_SUPER (self)->mark (gc, self); chimp_gc_mark_ref (gc, CHIMP_SYMTABLE_ENTRY(self)->symtable); chimp_gc_mark_ref (gc, CHIMP_SYMTABLE_ENTRY(self)->scope); chimp_gc_mark_ref (gc, CHIMP_SYMTABLE_ENTRY(self)->symbols); chimp_gc_mark_ref (gc, CHIMP_SYMTABLE_ENTRY(self)->parent); chimp_gc_mark_ref (gc, CHIMP_SYMTABLE_ENTRY(self)->children); }
static void _chimp_hash_mark (ChimpGC *gc, ChimpRef *self) { CHIMP_SUPER (self)->mark (gc, self); size_t i; for (i = 0; i < CHIMP_HASH(self)->size; i++) { chimp_gc_mark_ref (gc, CHIMP_HASH(self)->keys[i]); chimp_gc_mark_ref (gc, CHIMP_HASH(self)->values[i]); } }
void chimp_task_mark (ChimpGC *gc, ChimpTaskInternal *task) { if (task->self != NULL) { chimp_gc_mark_ref (gc, task->self); } }