summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/emumem_hedw.ipp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/emumem_hedw.ipp')
-rw-r--r--src/emu/emumem_hedw.ipp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/emu/emumem_hedw.ipp b/src/emu/emumem_hedw.ipp
index f423f85ba1a..a3d8f78bb07 100644
--- a/src/emu/emumem_hedw.ipp
+++ b/src/emu/emumem_hedw.ipp
@@ -70,9 +70,10 @@ template<int HighBits, int Width, int AddrShift> handler_entry_write_dispatch<Hi
for(unsigned int i=0; i != COUNT; i++) {
handler_entry_write<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_write<Width, AddrShift> *dest = msrc->dup();
dupmap[src] = dest;
m_u_dispatch[i] = dest;
@@ -731,9 +732,10 @@ template<int HighBits, int Width, int AddrShift> void handler_entry_write_dispat
if(m_dispatch_array[0][entry]) {
handler_entry_write<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_write<Width, AddrShift> *dest = src->dup();
dupmap[src] = dest;
m_u_dispatch[entry] = dest;