On 21/09/17 03:18, Paolo Bonzini wrote: > On 20/09/2017 13:46, Alexey Kardashevskiy wrote: >> + QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) { >> + MemoryRegion *physmr = memory_region_get_flatview_root(as->root); >> + FlatView *new_view = g_hash_table_lookup(flat_views, physmr); >> + >> + if (new_view) { >> + continue; >> + } >> + >> + new_view = generate_memory_topology(physmr); >> + g_hash_table_insert(flat_views, physmr, new_view); > > generate_memory_topology can do the g_hash_table_lookup + insert I think?
Yeah, I suppose. But rather g_hash_table_replace() if we decide to proceed with 18/18 (or even if we do not - _replace() simply inserts if there was no such element). >> static void flatview_set_to_address_space(AddressSpace *as) >> { >> - FlatView *old_view = address_space_get_flatview(as); >> + FlatView *old_view = address_space_to_flatview(as); >> MemoryRegion *physmr = memory_region_get_flatview_root(as->root); >> FlatView *new_view = g_hash_table_lookup(flat_views, physmr); > > Rename to address_space_set_flatview? Sure, why not :) -- Alexey