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? > 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? Thanks, Paolo