[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULLv2 14/25] machine: use class base init generated name
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PULLv2 14/25] machine: use class base init generated name |
Date: |
Thu, 8 Sep 2016 18:17:09 +0400 |
machine_class_base_init() member name is allocated by
machine_class_base_init(), but not freed by
machine_class_finalize(). Simply freeing there doesn't work,
because DEFINE_PC_MACHINE() overwrites it with a literal string.
Fix DEFINE_PC_MACHINE() not to overwrite it, and add the missing
free to machine_class_finalize().
Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
---
hw/core/machine.c | 1 +
include/hw/boards.h | 2 +-
include/hw/i386/pc.h | 1 -
3 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index e5a456f..00fbe3e 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -561,6 +561,7 @@ static void machine_class_finalize(ObjectClass *klass, void
*data)
if (mc->compat_props) {
g_array_free(mc->compat_props, true);
}
+ g_free(mc->name);
}
void machine_register_compat_props(MachineState *machine)
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 3e69eca..e46a744 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -93,7 +93,7 @@ struct MachineClass {
/*< public >*/
const char *family; /* NULL iff @name identifies a standalone machtype */
- const char *name;
+ char *name;
const char *alias;
const char *desc;
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 330c1f2..422fac7 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -903,7 +903,6 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
{ \
MachineClass *mc = MACHINE_CLASS(oc); \
optsfn(mc); \
- mc->name = namestr; \
mc->init = initfn; \
} \
static const TypeInfo pc_machine_type_##suffix = { \
--
2.10.0
- [Qemu-devel] [PULLv2 03/25] qga: free the whole blacklist, (continued)
- [Qemu-devel] [PULLv2 03/25] qga: free the whole blacklist, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 05/25] tests: fix test-cutils leaks, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 07/25] tests: fix test-iov leaks, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 08/25] tests: fix check-qom-interface leaks, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 06/25] tests: fix test-vmstate leaks, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 10/25] tests: fix leak in test-string-input-visitor, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 09/25] tests: fix check-qom-proplist leaks, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 11/25] portio: keep references on portio, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 12/25] pc: simplify passing qemu_irq, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 13/25] pc: don't leak a20_line, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 14/25] machine: use class base init generated name,
Marc-André Lureau <=
- [Qemu-devel] [PULLv2 16/25] tests: fix qom-test leaks, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 15/25] acpi-build: fix array leak, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 17/25] pc: free i8259, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 18/25] pc: keep gsi reference, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 20/25] ipmi: free extern timer, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 19/25] sd: free timer, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 22/25] tests: add qtest_add_data_func_full, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 23/25] tests: pc-cpu-test leaks fixes, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 21/25] bus: simplify name handling, Marc-André Lureau, 2016/09/08
- [Qemu-devel] [PULLv2 24/25] tests: fix rsp leak in postcopy-test, Marc-André Lureau, 2016/09/08