2002-03-01
2002-03-01 02:32:14 by Martin Stjernholm <mast@lysator.liu.se>
-
ec461349526af9b58d34aabd7c43d45989fdd8f6
(9 lines)
(+8/-1)
[
Show
| Annotate
]
Branch: 7.9
Added a comment about the shaky state of affairs when a delayed
compiled program fails to be finished properly. It's essentially
impossible to reliably avoid arbitrary internal errors once that has
happened. The whole resolver stuff really needs a rewrite.
Rev: src/program.c:1.406
5:
\*/
/**/
#include "global.h"
- RCSID("$Id: program.c,v 1.405 2002/02/27 10:01:14 grubba Exp $");
+ RCSID("$Id: program.c,v 1.406 2002/03/01 02:32:14 mast Exp $");
#include "program.h"
#include "object.h"
#include "dynamic_buffer.h"
5195: Inside #if defined(PIKE_DEBUG)
#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);
locate_references(p);