From 9ff335efdc13727a96e4055d5ba7191fa4f9e308 Mon Sep 17 00:00:00 2001 From: lazymio Date: Sat, 12 Feb 2022 15:47:25 +0100 Subject: [PATCH] Fix memory leak of the empty_view --- qemu/softmmu/memory.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/qemu/softmmu/memory.c b/qemu/softmmu/memory.c index 3fe3467b..b6348301 100644 --- a/qemu/softmmu/memory.c +++ b/qemu/softmmu/memory.c @@ -685,7 +685,6 @@ static FlatView *generate_memory_topology(struct uc_struct *uc, MemoryRegion *mr { int i; FlatView *view; - FlatView *old_view; view = flatview_new(mr); @@ -703,14 +702,7 @@ static FlatView *generate_memory_topology(struct uc_struct *uc, MemoryRegion *mr flatview_add_to_dispatch(uc, view, &mrs); } address_space_dispatch_compact(view->dispatch); - - old_view = g_hash_table_lookup(uc->flat_views, mr); - if (old_view != view) { - g_hash_table_replace(uc->flat_views, mr, view); - if (old_view) { - flatview_unref(old_view); - } - } + g_hash_table_replace(uc->flat_views, mr, view); return view; } @@ -794,9 +786,7 @@ static void flatviews_init(struct uc_struct *uc) uc->empty_view = generate_memory_topology(uc, NULL); /* We keep it alive forever in the global variable. */ flatview_ref(uc->empty_view); - } else { g_hash_table_replace(uc->flat_views, NULL, uc->empty_view); - flatview_ref(uc->empty_view); } }