public override void select_u(int id) //template<int HighBits, int Width, int AddrShift> void handler_entry_read_dispatch<HighBits, Width, AddrShift>::select_u(int id) { u32 i = (u32)id + 1; if (i > m_dispatch_array.size()) { fatalerror("out-of-range view update selection."); } else if (i == m_dispatch_array.size()) { u32 aid = (u32)(m_a_dispatch.Offset - m_dispatch_array.data().Offset); //u32 aid = (handler_array *)(m_a_dispatch) - m_dispatch_array.data(); m_dispatch_array.resize(i + 1); m_ranges_array.resize(i + 1); m_a_ranges = m_ranges_array[aid].data(); m_a_dispatch = m_dispatch_array[aid].data(); m_u_ranges = m_ranges_array[i].data(); m_u_dispatch = m_dispatch_array[i].data(); for (u32 entry = 0; entry != COUNT; entry++) { if (m_dispatch_array[0][entry] != null) { m_u_dispatch[entry] = m_dispatch_array[0][entry].dup(); m_u_ranges[entry] = m_ranges_array[0][entry]; } } } else { m_u_ranges = m_ranges_array[i].data(); m_u_dispatch = m_dispatch_array[i].data(); } }