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.340 2009/12/13 23:22:34 mast Exp $ + || $Id: gc.c,v 1.341 2010/04/11 17:24:47 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:1145: Inside #if defined(PIKE_DEBUG)
   {    struct object *o;    for (o = first_object; o && o != (struct object *) a; o = o->next) {}    if (!o)    fprintf(stderr,"%*s**The object is not on the object link list.\n",indent,"");    for (o = objects_to_destruct; o && o != (struct object *) a; o = o->next) {}    if (o)    fprintf(stderr,"%*s**The object is on objects_to_destruct.\n",indent,"");    }    +  { +  struct program_state *ps; +  for (ps = Pike_compiler; ps; ps = ps->previous) +  if (ps->fake_object == (struct object *) a) { +  fprintf (stderr, "%*s**The object is a fake for new program %p " +  "in compiler program state %p.\n", +  indent, "", ps->new_program, ps); +  break; +  } +  } +     if(!p)    {    p=id_to_program(((struct object *)a)->program_id);    if(p)    fprintf(stderr,"%*s**The object is destructed but program found from id.\n",    indent,"");    else    fprintf(stderr,"%*s**The object is destructed and program not found from id.\n",    indent,"");    }
pike.git/src/gc.c:1684:   {    fprintf(stderr, "## Watched thing %p with %d refs found in "    "%s in pass %d.\n", m->data, *(INT32 *) m->data, found_in, Pike_in_gc);    describe_marker (m);   }      #endif /* PIKE_DEBUG */      #ifndef GC_MARK_DEBUG   struct pike_queue gc_mark_queue; - #else /* !GC_MARK_DEBUG */ + #else /* GC_MARK_DEBUG */      /* Cut'n'paste from queue.c. */      struct gc_queue_entry   {    queue_call call;    void *data;    int in_type;    void *in;    const char *place;