1999-10-22
1999-10-22 16:04:04 by Henrik Grubbström (Grubba) <grubba@grubba.org>
-
fc046ad1776159b1fc2f201e8082161efa4afa23
(15 lines)
(+11/-4)
[
Show
| Annotate
]
Branch: 7.9
Semi-bugfix of gc_check_all_programs().
Rev: src/program.c:1.164
5:
\*/
/**/
#include "global.h"
- RCSID("$Id: program.c,v 1.163 1999/10/22 00:02:24 hubbe Exp $");
+ RCSID("$Id: program.c,v 1.164 1999/10/22 16:04:04 grubba Exp $");
#include "program.h"
#include "object.h"
#include "dynamic_buffer.h"
2919: Inside #if defined(GC2)
void gc_check_all_programs(void)
{
struct program *p;
- for(p=first_program;p;p=p->next)
+ struct program *next;
+ for(p=first_program;p;p=next)
{
int e;
- debug_malloc_touch(p);
+ /* We don't want p to be freed under our feet... */
+ add_ref(p);
- for(e=0;e<p->num_constants;e++)
+ for(e=0;e<p->num_constants;e++) {
debug_gc_check_svalues(& p->constants[e].sval, 1, T_PROGRAM, p);
-
+ }
for(e=0;e<p->num_inherits;e++)
{
2963: Inside #if defined(PIKE_DEBUG)
}
}
#endif
+
+ next = p->next;
+ free_program(p);
}
}