X-Git-Url: https://git.llucax.com/software/dgc/cdgc.git/blobdiff_plain/2b70a82bd511b6e1bc1f9ae5e0c1a070158c81d6..27b5b707bcd280cd2cc4e2a2a5cc17eb4e06347a:/rt/gc/cdgc/gc.d?ds=sidebyside diff --git a/rt/gc/cdgc/gc.d b/rt/gc/cdgc/gc.d index b62d1be..3a925fc 100644 --- a/rt/gc/cdgc/gc.d +++ b/rt/gc/cdgc/gc.d @@ -621,18 +621,7 @@ void mark(void *pbot, void *ptop, size_t* pm_bitmask) //printf("marking range: %p -> %p\n", pbot, ptop); for (; p1 + type_size <= p2; p1 += type_size) { - size_t n = 0; - if (has_type_info) { - while (n < type_size && pm_bits[n / BITS_PER_WORD] == 0) - n += BITS_PER_WORD; - if (n < type_size && (pm_bits[n / BITS_PER_WORD] & - ((1 << (BITS_PER_WORD / 2)) - 1)) == 0) - n += BITS_PER_WORD / 2; - else if (n < type_size && (pm_bits[n / BITS_PER_WORD] & - ((1 << (BITS_PER_WORD / 4)) - 1)) == 0) - n += BITS_PER_WORD / 4; - } - for (; n < type_size; n++) { + for (size_t n = 0; n < type_size; n++) { // scan bit set for this word if (has_type_info && !(pm_bits[n / BITS_PER_WORD] & (1 << (n % BITS_PER_WORD))))