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.741 2008/08/13 18:02:02 mast Exp $ + || $Id: program.c,v 1.742 2008/08/13 21:11:58 mast Exp $   */      #include "global.h"   #include "program.h"   #include "object.h"   #include "dynamic_buffer.h"   #include "pike_types.h"   #include "stralloc.h"   #include "las.h"   #include "lex.h"
pike.git/src/program.c:8004:    * a previous compile() actually failed, even    * if we did not know it at the time    */    CDFPRINTF((stderr, "th(%ld) %p unregistering failed delayed compile.\n",    (long) th_self(), p));    ref_push_program(p);    /* FIXME: Shouldn't the compilation handler be used here? */    SAFE_APPLY_MASTER("unregister",1);    pop_stack();    +  /* Free the target here to avoid false alarms in the debug check +  * below. */ +  free_program (c->target); +  c->target = NULL; +    #ifdef PIKE_DEBUG    if (p->refs > 1) {    /* Other programs can have indexed out constants from p, which    * might be broken themselves and/or keep references to p    * through the parent pointer. We should find all those other    * programs and invalidate them too, but how can that be done?    * The whole delayed compilation thingie is icky icky icky... :P    * /mast */    fprintf(stderr, "Warning: Program still got %d "    "external refs after unregister:\n", p->refs - 1);