pike.git / src / gc.c

version» Context lines:

pike.git/src/gc.c:1:   /*   || 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: gc.c,v 1.201 2004/09/16 15:25:34 grubba Exp $ + || $Id: gc.c,v 1.202 2004/09/30 12:12:10 mast Exp $   */      #include "global.h"      struct callback *gc_evaluator_callback=0;      #include "array.h"   #include "multiset.h"   #include "mapping.h"   #include "object.h"
pike.git/src/gc.c:24:   #include "constants.h"   #include "interpret.h"   #include "bignum.h"      #include "gc.h"   #include "main.h"   #include <math.h>      #include "block_alloc.h"    - RCSID("$Id: gc.c,v 1.201 2004/09/16 15:25:34 grubba Exp $"); + RCSID("$Id: gc.c,v 1.202 2004/09/30 12:12:10 mast Exp $");      /* Run garbage collect approximately every time    * 20 percent of all arrays, objects and programs is    * garbage.    */      #define GC_CONST 20   #define MIN_ALLOC_THRESHOLD 1000   #define MAX_ALLOC_THRESHOLD 2000000000   #define MULTIPLIER 0.9
pike.git/src/gc.c:2480: Inside #if defined(PIKE_DEBUG)
   if (m->flags & GC_LIVE)    Pike_fatal("Shouldn't live recurse when there's nothing to do.\n");   #endif    m->flags |= GC_LIVE|GC_LIVE_RECURSE;    debug_malloc_touch(x);       if (m->flags & GC_GOT_DEAD_REF) {    /* A thing previously popped as dead is now being marked live.    * Have to remove the extra ref added by gc_cycle_pop(). */    gc_free_extra_ref(x); -  if (!--*(INT32 *) x) { +  if (!sub_ref ((struct ref_dummy *) x)) {   #ifdef PIKE_DEBUG    gc_fatal(x, 0, "Thing got zero refs after removing the dead gc ref.\n");   #endif    }    }       {    /* Recurse without linking onto rec_list. */    struct gc_frame *l = gc_cycle_enqueue_pop(x);   #ifdef GC_CYCLE_DEBUG