Could merging this back into mem_event_t simplify the code overall, with mem_event_t containing a byte_events (GHashtable or even GSList, given how the hashtable is used at the moment) with value pointing at the other data?

I feel intuitively there's something to that, but I don't have the time to explore it, unfortunately.