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.344 2010/04/16 00:15:17 mast Exp $ + || $Id: gc.c,v 1.345 2010/04/19 13:51:48 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:3550:       if (gc_destruct_everything) {    GC_VERBOSE_DO(fprintf(stderr,    "| mark pass skipped - will destruct all objects\n"));    }    else {    /* Next we mark anything with external references. Note that we can    * follow the same reference several times, e.g. with shared mapping    * data blocks. */    ACCEPT_UNFINISHED_TYPE_FIELDS { -  assert (!gc_mark_queue.first); /* Should be empty. */ +  /* The queue should be empty here. */ + #ifdef GC_MARK_DEBUG +  assert (!gc_mark_first); + #else +  assert (!gc_mark_queue.first); + #endif +     gc_mark_all_arrays();    gc_mark_run_queue();    gc_mark_all_multisets();    gc_mark_run_queue();    gc_mark_all_mappings();    gc_mark_run_queue();    gc_mark_all_programs();    gc_mark_run_queue();    gc_mark_all_objects();    gc_mark_run_queue();