Branch: Tag:

2003-09-08

2003-09-08 20:05:21 by Martin Stjernholm <mast@lysator.liu.se>

Cleaned up the gc check stuff a bit (large indentantion changes). Added more
tracking in the gc to help track down bugs when the gc follows munged
pointers in the mark pass. That's activated with GC_MARK_DEBUG.

Rev: src/array.c:1.149
Rev: src/backend.cmod:1.47
Rev: src/error.c:1.115
Rev: src/gc.c:1.228
Rev: src/gc.h:1.104
Rev: src/interpret.c:1.329
Rev: src/mapping.c:1.170
Rev: src/multiset.c:1.78
Rev: src/object.c:1.247
Rev: src/program.c:1.524
Rev: src/security.c:1.45
Rev: src/svalue.c:1.173
Rev: src/svalue.h:1.123
Rev: src/threads.c:1.220

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: interpret.c,v 1.328 2003/08/10 12:16:29 grubba Exp $ + || $Id: interpret.c,v 1.329 2003/09/08 20:05:21 mast Exp $   */      #include "global.h" - RCSID("$Id: interpret.c,v 1.328 2003/08/10 12:16:29 grubba Exp $"); + RCSID("$Id: interpret.c,v 1.329 2003/09/08 20:05:21 mast Exp $");   #include "interpret.h"   #include "object.h"   #include "program.h"
130: Inside #if defined(PIKE_DEBUG)
  static void gc_check_stack_callback(struct callback *foo, void *bar, void *gazonk)   {    struct pike_frame *f; -  debug_gc_xmark_svalues(Pike_interpreter.evaluator_stack, -  Pike_sp-Pike_interpreter.evaluator_stack-1, +  gc_mark_external_svalues(Pike_interpreter.evaluator_stack, +  Pike_sp-Pike_interpreter.evaluator_stack,    " on current interpreter stack");       for(f=Pike_fp;f;f=f->next)    {    if(f->context.parent) -  gc_external_mark2(f->context.parent,0," in Pike_fp->context.parent on current stack"); -  gc_external_mark2(f->current_object,0," in Pike_fp->current_object on current stack"); -  gc_external_mark2(f->context.prog,0," in Pike_fp->context.prog on current stack"); +  gc_mark_external (f->context.parent, " in Pike_fp->context.parent on current stack"); +  gc_mark_external (f->current_object, " in Pike_fp->current_object on current stack"); +  gc_mark_external (f->context.prog, " in Pike_fp->context.prog on current stack");    }      }