On Tue, Jan 23, 2024 at 9:39 AM Daniel Henrique Barboza
<dbarboza@ventanamicro.com> wrote:
>
> Hi,
>
> First patch fixes a leak found when using Valgrind. The root cause is a
> missing g_free() in a string.
>
> In fact, I found while doing reviews that we keep repeating the same
> pattern:
>
> ====
> char *name;
> name = g_strdup_printf(...);
> (...)
> g_free(name);
> ====
>
> With this in mind, I ended up making this rather trivial series to
> introduce more string/array autocleaning in the 'virt' machine code. The
> advantage of doing 'g_autofree' is that we'll guarantee that we'll clean
> ourselves up when the variable goes out of scope, avoiding leaks like
> the one patch 1 fixes. We want to enforce this autoclean style in
> reviews, and for that we need to get rid of at least some of the uses we
> do it right now.
>
> I didn't bother changing the 'spike' and the 'sifive' boards for now
> because the bulk of new patches is done on top of the 'virt' machine,
> so it's more important to tidy this board first.
>
>
> Daniel Henrique Barboza (7):
> hw/riscv/virt-acpi-build.c: fix leak in build_rhct()
> hw/riscv/numa.c: use g_autofree in socket_fdt_write_distance_matrix()
> hw/riscv/virt.c: use g_autofree in create_fdt_socket_cpus()
> hw/riscv/virt.c: use g_autofree in create_fdt_sockets()
> hw/riscv/virt.c: use g_autofree in create_fdt_virtio()
> hw/riscv/virt.c: use g_autofree in virt_machine_init()
> hw/riscv/virt.c: use g_autofree in create_fdt_*
Thanks!
Applied to riscv-to-apply.next
Alistair
>
> hw/riscv/numa.c | 4 +-
> hw/riscv/virt-acpi-build.c | 2 +-
> hw/riscv/virt.c | 109 ++++++++++++-------------------------
> 3 files changed, 37 insertions(+), 78 deletions(-)
>
> --
> 2.43.0
>
>