diff options
Diffstat (limited to 'src/emu/emumem_hedr.h')
-rw-r--r-- | src/emu/emumem_hedr.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/emu/emumem_hedr.h b/src/emu/emumem_hedr.h index 0ef50471e8f..0756c91795c 100644 --- a/src/emu/emumem_hedr.h +++ b/src/emu/emumem_hedr.h @@ -54,10 +54,30 @@ private: static constexpr offs_t HIGHMASK = make_bitmask<offs_t>(HighBits) ^ LOWMASK; static constexpr offs_t UPMASK = ~make_bitmask<offs_t>(HighBits); + class handler_array : public std::array<handler_entry_read<Width, AddrShift, Endian> *, COUNT> + { + public: + using std::array<handler_entry_read<Width, AddrShift, Endian> *, COUNT>::array; + handler_array() + { + std::fill(this->begin(), this->end(), nullptr); + } + }; + + class range_array : public std::array<handler_entry::range, COUNT> + { + public: + using std::array<handler_entry::range, COUNT>::array; + range_array() + { + std::fill(this->begin(), this->end(), handler_entry::range{ 0, 0 }); + } + }; + memory_view *m_view; - std::vector<std::array<handler_entry_read<Width, AddrShift, Endian> *, COUNT>> m_dispatch_array; - std::vector<std::array<handler_entry::range, COUNT>> m_ranges_array; + std::vector<handler_array> m_dispatch_array; + std::vector<range_array> m_ranges_array; handler_entry_read<Width, AddrShift, Endian> **m_a_dispatch; handler_entry::range *m_a_ranges; |