pike.git/
src/
gc.c
Branch:
Tag:
Non-build tags
All tags
No tags
2000-07-06
2000-07-06 23:30:40 by Martin Stjernholm <mast@lysator.liu.se>
4be85ae17546b42a3fafc7397243f6a0a91ff662 (
7
lines) (+
5
/-
2
)
[
Show
|
Annotate
]
Branch:
7.9
Fixed a slight risk for freeing memory twice.
Rev: src/gc.c:1.103
29:
#include "block_alloc.h"
-
RCSID("$Id: gc.c,v 1.
102
2000/07/
04
21
:
44
:
19
grubba
Exp $");
+
RCSID("$Id: gc.c,v 1.
103
2000/07/
06
23
:
30
:
40
mast
Exp $");
/* Run garbage collect approximately every time * 20 percent of all arrays, objects and programs is
1567:
unsigned cycle = 0; ONERROR err; struct array *obj_arr = allocate_array(0);
-
+
SET_ONERROR(err, do_free_array, obj_arr);
-
+
for (p = kill_list; p;) { if ((cycle = p->cycle)) { push_object((struct object *) p->data);
1580:
push_constant_text("gc"); push_constant_text("bad_cycle"); push_array(obj_arr);
+
obj_arr = 0;
SAFE_APPLY_MASTER("runtime_warning", 3); pop_stack(); obj_arr = allocate_array(0);
1588:
} if (!p) break; }
+
CALL_AND_UNSET_ONERROR(err); } UNSETJMP(uwp);