diff options
Diffstat (limited to 'garbage.c')
-rw-r--r-- | garbage.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -27,6 +27,7 @@ static void markpredicates(Predicate *); static void markclauses(Clause *); static void markterm(Term *); static void markbindings(Binding *); +static void markoperators(Operator *); static Allocation *allocationtab[TableSize]; @@ -128,9 +129,12 @@ static void markmodules(void) { Module *m; + int i; for(m = modules; m != nil; m = m->next){ mark(m); markpredicates(m->predicates); + for(i = 0; i < PrecedenceLevels; i++) + markoperators(m->operators[i]); } } @@ -196,4 +200,12 @@ markbindings(Binding *bindings) mark(b); markterm(b->value); } +} + +static void +markoperators(Operator *ops) +{ + Operator *op; + for(op = ops; op != nil; op = op->next) + mark(op); }
\ No newline at end of file |