pike.git
/
src
/
program.c
version
»
Context lines:
10
20
40
80
file
none
3
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);