summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/emumem_hedr.ipp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/emumem_hedr.ipp')
-rw-r--r--src/emu/emumem_hedr.ipp10
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;