Branch: Tag:

2000-04-22

2000-04-22 13:20:40 by Martin Stjernholm <mast@lysator.liu.se>

More gc fixes; got to keep after those pesky markers. Looks like it
actually might work ok now.

Rev: src/array.c:1.64
Rev: src/gc.c:1.56
Rev: src/gc.h:1.26
Rev: src/mapping.c:1.72
Rev: src/multiset.c:1.18
Rev: src/object.c:1.104
Rev: src/program.c:1.224
Rev: src/stralloc.c:1.82
Rev: src/svalue.c:1.66

5:   \*/   /**/   #include "global.h" - RCSID("$Id: mapping.c,v 1.71 2000/04/06 20:17:05 hubbe Exp $"); + RCSID("$Id: mapping.c,v 1.72 2000/04/22 13:20:39 mast Exp $");   #include "main.h"   #include "object.h"   #include "mapping.h"
63:    \    if(m->next) m->next->prev = m->prev; \    \ -  GC_FREE(); +  GC_FREE(m);         #undef COUNT_OTHER
1840: Inside #if defined(DEBUG_MALLOC)
   fatal("Zapped mapping in list of active mappings!\n");    }   #endif /* DEBUG_MALLOC */ +  +  if(gc_check_nongarbed(m->data)) continue; +     if((m->data->ind_types | m->data->val_types) & BIT_COMPLEX)    { -  if(gc_check(m->data)) continue; -  +     MAPPING_LOOP(m)    {    /* We do not want to count this key:index pair if