pike.git/
src/
mapping.c
Branch:
Tag:
Non-build tags
All tags
No tags
1996-09-25
1996-09-25 01:38:54 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>
5d7d05487e3c9a10baa64c6591bd9cff8545975e (
19
lines) (+
17
/-
2
)
[
Show
|
Annotate
]
Branch:
7.9
bug in garbage collector fixed
Rev: src/mapping.c:1.4
921:
Inside #if defined(GC2)
{ LOOP(m) {
+
/* We do not want to count this key:index pair if
+
* the index is a destructed object or function
+
*/
+
if(((1 << k->ind.type) & (BIT_OBJECT | BIT_FUNCTION)) &&
+
!(k->ind.u.object->prog))
+
continue;
+
gc_mark_svalues(&k->ind, 1); gc_mark_svalues(&k->val, 1); }
938:
Inside #if defined(GC2)
{ if((m->ind_types | m->val_types) & BIT_COMPLEX) {
-
check_mapping_for_destruct(m);
+
LOOP(m) {
-
+
/* We do not want to count this key:index pair if
+
* the index is a destructed object or function
+
*/
+
if(((1 << k->ind.type) & (BIT_OBJECT | BIT_FUNCTION)) &&
+
!(k->ind.u.object->prog))
+
continue;
+
gc_check_svalues(&k->ind, 1);
-
gc_check_svalues(&k->val, 1);
+
m->val_types |=
gc_check_svalues(&k->val, 1);
} #ifdef DEBUG
969:
Inside #if defined(GC2)
for(m=first_mapping;m;m=next) {
+
check_mapping_for_destruct(m);
if(gc_do_free(m)) { m->refs++;