Пример #1
0
Файл: task.c Проект: eax/chimp
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);
}
Пример #2
0
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);
}
Пример #3
0
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);
}
Пример #4
0
Файл: hash.c Проект: eax/chimp
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]);
    }
}
Пример #5
0
Файл: task.c Проект: eax/chimp
void
chimp_task_mark (ChimpGC *gc, ChimpTaskInternal *task)
{
    if (task->self != NULL) {
        chimp_gc_mark_ref (gc, task->self);
    }
}