pike.git / src / gc.c

version» Context lines:

pike.git/src/gc.c:140:    return getmark(a)->refs++;   }      int gc_is_referenced(void *a)   {    struct marker *m;    m=getmark(a);   #ifdef DEBUG    if(m->refs + m->xrefs > *(INT32 *)a)    { +  INT32 refs=m->refs; +  INT32 xrefs=m->xrefs;    check_for=a; -  fatal("Ref counts are wrong (has %d, found %d + %d external)\n", -  *(INT32 *)a, -  m->refs, -  m->xrefs); +        gc_check_all_arrays();    gc_check_all_multisets();    gc_check_all_mappings();    gc_check_all_programs();    gc_check_all_objects();    call_callback(& gc_callbacks, (void *)0);       check_for=0; -  fatal("Ref counts are totally wrong!!!\n"); +  +  fatal("Ref counts are wrong (has %d, found %d + %d external)\n", +  *(INT32 *)a, +  refs, +  xrefs);    }   #endif    return m->refs < *(INT32 *)a;   }      #ifdef DEBUG   int gc_external_mark(void *a)   {    struct marker *m;    if(check_for)