Commit 8ea75371 authored by Marc-André Lureau's avatar Marc-André Lureau
Browse files

machine: use class base init generated name



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: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
parent ac64c5fd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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)
+1 −1
Original line number Diff line number Diff line
@@ -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;

+0 −1
Original line number Diff line number Diff line
@@ -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 = { \