STATIC void GC_print_block_descr_inner(struct hblk *h) { hdr * hhdr = HDR(h); size_t bytes = hhdr -> hb_sz; unsigned n_marks = GC_n_set_marks(hhdr); char* pfstr = (hhdr->hb_flags & HAS_PENDING_FREE) ? "pf" : ""; if (hhdr -> hb_n_marks != n_marks) { GC_printf("(%s:%u:%u,%u!=%u)", pfstr, hhdr -> hb_obj_kind, (unsigned)bytes, (unsigned)hhdr -> hb_n_marks, n_marks); } else { GC_printf("(%s:%u:%u,%u)", pfstr, hhdr -> hb_obj_kind, (unsigned)bytes, n_marks); } }
STATIC void GC_print_block_descr(struct hblk *h, word /* struct PrintStats */ raw_ps) { hdr * hhdr = HDR(h); size_t bytes = hhdr -> hb_sz; struct Print_stats *ps; unsigned n_marks = GC_n_set_marks(hhdr); if (hhdr -> hb_n_marks != n_marks) { GC_printf("(%u:%u,%u!=%u)", hhdr -> hb_obj_kind, (unsigned)bytes, (unsigned)hhdr -> hb_n_marks, n_marks); } else { GC_printf("(%u:%u,%u)", hhdr -> hb_obj_kind, (unsigned)bytes, n_marks); } bytes += HBLKSIZE-1; bytes &= ~(HBLKSIZE-1); ps = (struct Print_stats *)raw_ps; ps->total_bytes += bytes; ps->number_of_blocks++; }