summaryrefslogtreecommitdiff
path: root/garbage.c
diff options
context:
space:
mode:
Diffstat (limited to 'garbage.c')
-rw-r--r--garbage.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/garbage.c b/garbage.c
index d2138d9..212c171 100644
--- a/garbage.c
+++ b/garbage.c
@@ -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