Branch: Tag:

2000-04-23

2000-04-23 03:01:26 by Martin Stjernholm <mast@lysator.liu.se>

GC fixes. Made the gc quite a bit more whiny when -d is used.

Rev: src/array.c:1.68
Rev: src/array.h:1.19
Rev: src/gc.c:1.79
Rev: src/gc.h:1.38
Rev: src/mapping.c:1.79
Rev: src/mapping.h:1.24
Rev: src/multiset.c:1.20
Rev: src/multiset.h:1.10
Rev: src/object.c:1.120
Rev: src/object.h:1.45
Rev: src/program.c:1.232
Rev: src/program.h:1.87
Rev: src/svalue.c:1.72
Rev: src/threads.h:1.89

16:   #include "gc.h"   #include "security.h"    - RCSID("$Id: multiset.c,v 1.19 2000/04/20 01:49:43 mast Exp $"); + RCSID("$Id: multiset.c,v 1.20 2000/04/23 03:01:25 mast Exp $");      struct multiset *first_multiset;   
31:   struct multiset *allocate_multiset(struct array *ind)   {    struct multiset *l; -  GC_ALLOC(); +     l=ALLOC_STRUCT(multiset); -  +  GC_ALLOC(l);    l->next = first_multiset;    l->prev = 0;    l->refs = 1;
66:    if(l->next) l->next->prev = l->prev;       free((char *)l); -  GC_FREE(l); +  GC_FREE();   }      
291:    gc_mark_array_as_referenced(l->ind);   }    + #ifdef PIKE_DEBUG + INT32 gc_touch_all_multisets(void) + { +  INT32 n = 0; +  struct multiset *l; +  for(l=first_multiset;l;l=l->next) { +  debug_gc_touch(l); +  n++; +  } +  return n; + } + #endif +    void gc_check_all_multisets(void)   {    struct multiset *l;