=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/gc/typd_mlc.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- OpenXM_contrib2/asir2000/gc/typd_mlc.c 1999/12/03 07:39:10 1.1 +++ OpenXM_contrib2/asir2000/gc/typd_mlc.c 2000/12/01 09:26:13 1.2 @@ -175,7 +175,7 @@ GC_descr GC_double_descr(descriptor, nwords) register GC_descr descriptor; register word nwords; { - if (descriptor && DS_TAGS == DS_LENGTH) { + if (descriptor & DS_TAGS == DS_LENGTH) { descriptor = GC_bm_table[BYTES_TO_WORDS((word)descriptor)]; }; descriptor |= (descriptor & ~DS_TAGS) >> nwords; @@ -430,7 +430,7 @@ word env; if (bm & 1) { current = *current_p; if ((ptr_t)current >= least_ha && (ptr_t)current <= greatest_ha) { - PUSH_CONTENTS(current, mark_stack_ptr, + PUSH_CONTENTS((ptr_t)current, mark_stack_ptr, mark_stack_limit, current_p, exit1); } } @@ -665,6 +665,7 @@ DCL_LOCK_STATE; # endif } else { *opp = obj_link(op); + obj_link(op) = 0; GC_words_allocd += lw; FASTUNLOCK(); } @@ -708,6 +709,7 @@ DCL_LOCK_STATE; # endif } else { *opp = obj_link(op); + obj_link(op) = 0; GC_words_allocd += lw; FASTUNLOCK(); } @@ -717,7 +719,7 @@ DCL_LOCK_STATE; lw = BYTES_TO_WORDS(GC_size(op)); } if (op != NULL) - ((word *)op)[lw - 1] = d; + ((word *)op)[lw - 1] = d; return((GC_PTR) op); } @@ -772,6 +774,7 @@ DCL_LOCK_STATE; # endif } else { *opp = obj_link(op); + obj_link(op) = 0; GC_words_allocd += lw; FASTUNLOCK(); }