mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
QemuOpts: change opt->name|str from (const char *) to (char *)
qemu_opt_del() already assumes that all QemuOpt instances contain malloc'd name and value; but it had to cast away const because opts_start_struct() was doing its own thing and using static storage instead. By using the correct type and malloced strings everywhere, the usage of this struct becomes clearer. Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Leandro Dorileo <l@dorileo.org> Signed-off-by: Chunyan Liu <cyliu@suse.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
e36af94f86
commit
dc8622f2bf
3 changed files with 11 additions and 7 deletions
|
@ -143,8 +143,8 @@ opts_start_struct(Visitor *v, void **obj, const char *kind,
|
|||
if (ov->opts_root->id != NULL) {
|
||||
ov->fake_id_opt = g_malloc0(sizeof *ov->fake_id_opt);
|
||||
|
||||
ov->fake_id_opt->name = "id";
|
||||
ov->fake_id_opt->str = ov->opts_root->id;
|
||||
ov->fake_id_opt->name = g_strdup("id");
|
||||
ov->fake_id_opt->str = g_strdup(ov->opts_root->id);
|
||||
opts_visitor_insert(ov->unprocessed_opts, ov->fake_id_opt);
|
||||
}
|
||||
}
|
||||
|
@ -177,7 +177,11 @@ opts_end_struct(Visitor *v, Error **errp)
|
|||
}
|
||||
g_hash_table_destroy(ov->unprocessed_opts);
|
||||
ov->unprocessed_opts = NULL;
|
||||
g_free(ov->fake_id_opt);
|
||||
if (ov->fake_id_opt) {
|
||||
g_free(ov->fake_id_opt->name);
|
||||
g_free(ov->fake_id_opt->str);
|
||||
g_free(ov->fake_id_opt);
|
||||
}
|
||||
ov->fake_id_opt = NULL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue