diff options
Diffstat (limited to 'src/emu/emumem_hedr.ipp')
| -rw-r--r-- | src/emu/emumem_hedr.ipp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/emu/emumem_hedr.ipp b/src/emu/emumem_hedr.ipp index 0f648359661..5ac845b0fef 100644 --- a/src/emu/emumem_hedr.ipp +++ b/src/emu/emumem_hedr.ipp @@ -70,9 +70,10 @@ template<int HighBits, int Width, int AddrShift> handler_entry_read_dispatch<Hig for(unsigned int i=0; i != COUNT; i++) { handler_entry_read<Width, AddrShift> *msrc = src->m_u_dispatch[i]; auto m = dupmap.find(msrc); - if(m != dupmap.end()) + if(m != dupmap.end()) { + m->second->ref(); m_u_dispatch[i] = m->second; - else { + } else { handler_entry_read<Width, AddrShift> *dest = msrc->dup(); dupmap[src] = dest; m_u_dispatch[i] = dest; @@ -729,9 +730,10 @@ template<int HighBits, int Width, int AddrShift> void handler_entry_read_dispatc if(m_dispatch_array[0][entry]) { handler_entry_read<Width, AddrShift> *src = m_dispatch_array[0][entry]; auto m = dupmap.find(src); - if(m != dupmap.end()) + if(m != dupmap.end()) { + m->second->ref(); m_u_dispatch[entry] = m->second; - else { + } else { handler_entry_read<Width, AddrShift> *dest = src->dup(); dupmap[src] = dest; m_u_dispatch[entry] = dest; |
