Branch: Tag:

2009-11-28

2009-11-28 13:36:21 by Martin Stjernholm <mast@lysator.liu.se>

More rtldebug to get better info when gc_mark problems happen.

Rev: Makefile:1.168
Rev: src/array.c:1.226
Rev: src/gc.c:1.338
Rev: src/gc.h:1.138
Rev: src/mapping.c:1.214
Rev: src/multiset.c:1.119
Rev: src/object.c:1.304
Rev: src/pike_types.c:1.361
Rev: src/program.c:1.773
Rev: src/svalue.c:1.255

2:   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: mapping.c,v 1.213 2009/09/22 15:45:09 grubba Exp $ + || $Id: mapping.c,v 1.214 2009/11/28 13:36:20 mast Exp $   */      #include "global.h"
2583:    debug_malloc_touch(m);    debug_malloc_touch(m->data);    -  if(gc_mark(m)) +  if(gc_mark(m, T_MAPPING))    GC_ENTER (m, T_MAPPING) {    struct mapping_data *md = m->data;   
2596:    DOUBLELINK(first_mapping, m); /* Linked in first. */    }    -  if(gc_mark(md) && ((md->ind_types | md->val_types) & BIT_COMPLEX)) { +  if(gc_mark(md, T_MAPPING_DATA) && +  ((md->ind_types | md->val_types) & BIT_COMPLEX)) {    TYPE_FIELD ind_types = 0, val_types = 0;    if (MAPPING_DATA_IN_USE(md)) {    /* Must leave the mapping data untouched if it's busy. */