diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2011-07-26 15:36:22 +0400 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2011-07-26 15:36:22 +0400 |
commit | 29be14a4aa2f73bf89396e50e5f5322fa9264b00 (patch) | |
tree | 85fb9a7aa0e14ef35f73be40b00e0aedcb37cf96 /typd_mlc.c | |
parent | e955362cfcef47fdc3ad2140f50ea4638fd86a4d (diff) | |
download | bdwgc-29be14a4aa2f73bf89396e50e5f5322fa9264b00.tar.gz |
gc5.3 tarball importgc5_3
Diffstat (limited to 'typd_mlc.c')
-rw-r--r-- | typd_mlc.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -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(); } |