/// <summary> /// Handles removal of buffers written to a memory region being unmapped. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event arguments</param> public void MemoryUnmappedHandler(object sender, UnmapEventArgs e) { Buffer[] overlaps = new Buffer[10]; int overlapCount; ulong address = _context.MemoryManager.Translate(e.Address); ulong size = e.Size; lock (_buffers) { overlapCount = _buffers.FindOverlaps(address, size, ref overlaps); } for (int i = 0; i < overlapCount; i++) { overlaps[i].Unmapped(address, size); } }
/// <summary> /// Handles removal of counters written to a memory region being unmapped. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event arguments</param> public void MemoryUnmappedHandler(object sender, UnmapEventArgs e) => RemoveRange(e.Address, e.Size);