-rwxr-xr-x | gcl/o/gbc.c | 9 |
diff --git a/gcl/o/gbc.c b/gcl/o/gbc.c index 6be9f5fef..764d78640 100755 --- a/gcl/o/gbc.c +++ b/gcl/o/gbc.c @@ -496,10 +496,11 @@ mark_object(object x) { mark_object(x->ht.ht_rhthresh); if (x->ht.ht_self == NULL) break; - for (i = 0, j = x->ht.ht_size; i < j; i++) { - mark_object(x->ht.ht_self[i].hte_key); - mark_object(x->ht.ht_self[i].hte_value); - } + for (i = 0, j = x->ht.ht_size; i < j; i++) + if (x->ht.ht_self[i].hte_key!=OBJNULL) { + mark_object(x->ht.ht_self[i].hte_key); + mark_object(x->ht.ht_self[i].hte_value); + } if (inheap(x->ht.ht_self)) { if (what_to_collect == t_contiguous) mark_contblock((char *)x->ht.ht_self,j*sizeof(struct htent)); |