pike.git / src / program.c

version» Context lines:

pike.git/src/program.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: program.c,v 1.463 2002/11/25 03:16:08 mast Exp $ + || $Id: program.c,v 1.464 2002/12/01 00:16:55 mast Exp $   */      #include "global.h" - RCSID("$Id: program.c,v 1.463 2002/11/25 03:16:08 mast Exp $"); + RCSID("$Id: program.c,v 1.464 2002/12/01 00:16:55 mast Exp $");   #include "program.h"   #include "object.h"   #include "dynamic_buffer.h"   #include "pike_types.h"   #include "stralloc.h"   #include "las.h"   #include "language.h"   #include "lex.h"   #include "pike_macros.h"   #include "fsort.h"
pike.git/src/program.c:1827:    free_string(lex.current_file);    lex.current_file = save_file;    lex.current_line = save_line;   }         static void exit_program_struct(struct program *p)   {    unsigned INT16 e;    + #ifdef PIKE_DEBUG +  if (p->refs) { + #ifdef DEBUG_MALLOC +  describe_something(p, T_PROGRAM, 0,2,0, NULL); + #endif +  Pike_fatal("Program to be freed still got %d references.\n", p->refs); +  } + #endif +     if(p->parent)    {    /* Make sure to break the circularity... */    struct program *parent = p->parent;    p->parent = NULL;    free_program(parent);    }          if(id_to_program_cache[p->id & (ID_TO_PROGRAM_CACHE_SIZE-1)]==p)