{{ m_sv={(void*)m_sv} refcnt={m_sv->sv_refcnt,d} type={(svtype)(m_sv->sv_flags & 0xff),d} }} m_sv {{ size={(m_av->sv_any)->xav_fill + 1,d} refcnt={m_av->sv_refcnt,d} } m_av {{ size={(m_hv->sv_any)->xhv_keys,d} refcnt={m_hv->sv_refcnt,d} }} m_hv {{ refcnt={sv_refcnt,d} type={(svtype)(sv_flags & 0xff),d} }} sv_refcnt,d (svtype)(sv_flags & 0xff),d sv_u.svu_rv (av*)this (hv*)this (gv*)this ((XPVMG*)(sv_any)) sv_u.svu_pv,na sv_u.svu_iv,i sv_u.svu_uv sv_u.svu_nv,f sv_u.svu_rv {{ size={(sv_any)->xav_fill + 1,d} refcnt={sv_refcnt,d} type={(svtype)(sv_flags & 0xff),d} } sv_refcnt,d (sv_any)->xav_fill + 1 (sv_any)->xav_max (sv_any)->xav_fill + 1 (sv_u).svu_array {{ size={(sv_any)->xhv_keys,d} refcnt={sv_refcnt,d} type={(svtype)(sv_flags & 0xff),d} }} sv_refcnt,d (sv_any)->xhv_keys (sv_any)->xhv_max index++ bucket_inc = __findnonnull(bucket_array + index, max_index - index) index += bucket_inc entry = bucket_array[index] (entry->he_valu).hent_val entry = entry->hent_next {{ refcnt={sv_refcnt,d} type={(svtype)(sv_flags & 0xff),d} }} sv_refcnt,d (svtype)(sv_flags & 0xff),d (sv_u.svu_gp)->gp_sv (sv_u.svu_gp)->gp_cv (sv_u.svu_gp)->gp_av (sv_u.svu_gp)->gp_hv (sv_u.svu_gp)