From: Marc-André Lureau <marcandre.lur...@redhat.com> The free_ranges array is used as a temporary pointer array, the segment should still be freed, however, it shouldn't free the elements themself.
Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> Tested-by: Marcel Apfelbaum <mar...@redhat.com> Reviewed-by: Marcel Apfelbaum <mar...@redhat.com> --- hw/i386/acpi-build.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 77c40d9..017bb51 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -764,7 +764,7 @@ static gint crs_range_compare(gconstpointer a, gconstpointer b) static void crs_replace_with_free_ranges(GPtrArray *ranges, uint64_t start, uint64_t end) { - GPtrArray *free_ranges = g_ptr_array_new_with_free_func(crs_range_free); + GPtrArray *free_ranges = g_ptr_array_new(); uint64_t free_base = start; int i; @@ -788,7 +788,7 @@ static void crs_replace_with_free_ranges(GPtrArray *ranges, g_ptr_array_add(ranges, g_ptr_array_index(free_ranges, i)); } - g_ptr_array_free(free_ranges, false); + g_ptr_array_free(free_ranges, true); } /* -- 2.9.0