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.316 2008/05/14 21:09:07 mast Exp $ + || $Id: gc.c,v 1.317 2008/05/16 16:34:39 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:2245:    dloc_gc_fatal (file, line, f->data, 0,    "Prev pointer set for frame on kill list.\n");   }   #define CHECK_KILL_LIST_FRAME(f) \    do check_kill_list_frame ((f), __FILE__, __LINE__); while (0)      static void check_rec_stack (struct gc_rec_frame *p1, const char *p1n,    struct gc_rec_frame *p2, const char *p2n,    const char *file, int line)   { - #ifndef DEBUG_MALLOC -  if (gc_debug) - #endif -  { +  /* This debug check is disabled during the final cleanup since this +  * is O(n^2) on the stack size, and the stack gets a lot larger then. */ +  if (gc_debug && !gc_destruct_everything) {    struct gc_rec_frame *l, *last_cycle_id;    for (l = &sentinel_frame; l != stack_top;) {    l = l->next;    check_rec_stack_frame (l, p1, p1n, p2, p2n, file, line);    if (l->cycle_id == l)    last_cycle_id = l;    else if (l->cycle_id != last_cycle_id)    rec_stack_fatal (l, "err", p1, p1n, p2, p2n, file, line,    "Unexpected cycle id for frame %p.\n", l);    else if (l->rf_flags & GC_PREV_WEAK)