Use g_auto_ptr() to automate data block cleanup in the function so that it won't be a burden to us.
Suggested-by: Markus Armbruster <[email protected]> Signed-off-by: Gavin Shan <[email protected]> --- hw/acpi/ghes.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/hw/acpi/ghes.c b/hw/acpi/ghes.c index 06555905ce..6366c74248 100644 --- a/hw/acpi/ghes.c +++ b/hw/acpi/ghes.c @@ -565,9 +565,7 @@ int acpi_ghes_memory_errors(AcpiGhesState *ags, uint16_t source_id, 0xED, 0x7C, 0x83, 0xB1); Error *errp = NULL; int data_length; - GArray *block; - - block = g_array_new(false, true /* clear */, 1); + g_autoptr(GArray) block = g_array_new(false, true /* clear */, 1); data_length = ACPI_GHES_DATA_LENGTH + ACPI_GHES_MEM_CPER_LENGTH; /* @@ -585,8 +583,6 @@ int acpi_ghes_memory_errors(AcpiGhesState *ags, uint16_t source_id, /* Report the error */ ghes_record_cper_errors(ags, block->data, block->len, source_id, &errp); - g_array_free(block, true); - if (errp) { error_report_err(errp); return -1; -- 2.51.1
