Branch: Tag:

2000-06-12

2000-06-12 19:33:27 by Martin Stjernholm <mast@lysator.liu.se>

Removed the saved_refs debug checks; they won't work since things may
be freed in check, mark and cycle check passes that we don't have
direct control over. E.g. check_mapping_for_destruct is run during the
check pass, and if an index is a destructed object then the value will
be freed, which can cause a cascading free by refcount garbing.

Rev: src/gc.h:1.49
Rev: src/mapping.c:1.86
Rev: src/svalue.c:1.76

5:   \*/   /**/   #include "global.h" - RCSID("$Id: mapping.c,v 1.85 2000/06/12 13:51:59 mast Exp $"); + RCSID("$Id: mapping.c,v 1.86 2000/06/12 19:33:08 mast Exp $");   #include "main.h"   #include "object.h"   #include "mapping.h"
863:    debug_malloc_touch(m);    PREPARE_FOR_INDEX_CHANGE2();    *prev=k->next; -  debug_gc_check_count_free(k->ind.u.refs); -  debug_gc_check_count_free(k->val.u.refs); +     free_svalue(& k->ind);    free_svalue(& k->val);    k->next=md->free_list;