qemu-option: Factor out helper opt_create()

There is just one use so far.  The next commit will add more.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20200707160613.848843-12-armbru@redhat.com>
This commit is contained in:
Markus Armbruster 2020-07-07 18:05:39 +02:00
parent 44b0b7d175
commit 81a8a0726a

View File

@ -499,6 +499,23 @@ int qemu_opt_unset(QemuOpts *opts, const char *name)
}
}
static QemuOpt *opt_create(QemuOpts *opts, const char *name, char *value,
bool prepend)
{
QemuOpt *opt = g_malloc0(sizeof(*opt));
opt->name = g_strdup(name);
opt->str = value;
opt->opts = opts;
if (prepend) {
QTAILQ_INSERT_HEAD(&opts->head, opt, next);
} else {
QTAILQ_INSERT_TAIL(&opts->head, opt, next);
}
return opt;
}
static void opt_set(QemuOpts *opts, const char *name, char *value,
bool prepend, bool *help_wanted, Error **errp)
{
@ -516,16 +533,8 @@ static void opt_set(QemuOpts *opts, const char *name, char *value,
return;
}
opt = g_malloc0(sizeof(*opt));
opt->name = g_strdup(name);
opt->opts = opts;
if (prepend) {
QTAILQ_INSERT_HEAD(&opts->head, opt, next);
} else {
QTAILQ_INSERT_TAIL(&opts->head, opt, next);
}
opt = opt_create(opts, name, value, prepend);
opt->desc = desc;
opt->str = value;
qemu_opt_parse(opt, &local_err);
if (local_err) {
error_propagate(errp, local_err);