static void stepper(mps_addr_t object, mps_fmt_t format, mps_pool_t pool, void *p, size_t s) { struct stepper_data *sd; mps_arena_t arena; mps_bool_t b; mps_pool_t query_pool; mps_fmt_t query_fmt; Insist(s == sizeof *sd); sd = p; arena = sd->arena; Insist(mps_arena_has_addr(arena, object)); b = mps_addr_pool(&query_pool, arena, object); Insist(b); Insist(query_pool == pool); Insist(pool == sd->expect_pool); b = mps_addr_fmt(&query_fmt, arena, object); Insist(b); Insist(query_fmt == format); Insist(format == sd->expect_fmt); sd->count += 1; return; }
static void stepper(mps_addr_t object, mps_fmt_t format, mps_pool_t pool, void *p, size_t s) { struct stepper_data *sd; mps_arena_t arena; mps_bool_t b; mps_pool_t query_pool; mps_fmt_t query_fmt; size_t size; Insist(s == sizeof *sd); sd = p; arena = sd->arena; Insist(mps_arena_has_addr(arena, object)); b = mps_addr_pool(&query_pool, arena, object); Insist(b); Insist(query_pool == pool); Insist(pool == sd->expect_pool); b = mps_addr_fmt(&query_fmt, arena, object); Insist(b); Insist(query_fmt == format); Insist(format == sd->expect_fmt); size = AddrOffset(object, dylan_skip(object)); if (dylan_ispad(object)) { sd->padSize += size; } else { ++ sd->count; sd->objSize += size; } }