mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
debug: better handling of duplicate memory access
Don't remove and reinsert nodes that correspond to a duplicate memory access, because tree rebalancing kills performances. Update the node's element content instead.
This commit is contained in:
parent
47ba3927db
commit
d77c58794b
@ -1995,11 +1995,11 @@ void device_debug::memory_write_hook(address_space &space, offs_t address, UINT6
|
||||
if (m_track_mem)
|
||||
{
|
||||
dasm_memory_access newAccess(space.spacenum(), address, data, history_pc(0));
|
||||
if (!m_track_mem_set.insert(newAccess))
|
||||
{
|
||||
m_track_mem_set.remove(newAccess);
|
||||
dasm_memory_access* trackedAccess = m_track_mem_set.find(newAccess);
|
||||
if (trackedAccess)
|
||||
trackedAccess->m_pc = newAccess.m_pc;
|
||||
else
|
||||
m_track_mem_set.insert(newAccess);
|
||||
}
|
||||
}
|
||||
watchpoint_check(space, WATCHPOINT_WRITE, address, data, mem_mask);
|
||||
}
|
||||
|
@ -418,7 +418,10 @@ private:
|
||||
{
|
||||
if ((m_address == rhs.m_address) && (m_address_space == rhs.m_address_space))
|
||||
return m_data < rhs.m_data;
|
||||
return (m_address < rhs.m_address) && (m_address_space == rhs.m_address_space);
|
||||
else if (m_address_space == rhs.m_address_space)
|
||||
return m_address < rhs.m_address;
|
||||
else
|
||||
return m_address_space < rhs.m_address_space;
|
||||
}
|
||||
|
||||
// Stores the PC for a given address, memory region, and data value
|
||||
|
Loading…
Reference in New Issue
Block a user