QemuOpts: Convert qemu_opts_set() to Error, fix its use

Return the Error object instead of reporting it with
qerror_report_err().

Change callers that assume the function can't fail to pass
&error_abort, so that should the assumption ever break, it'll break
noisily.

Turns out all callers outside its unit test assume that.  We could
drop the Error ** argument, but that would make the interface less
regular, so don't.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Markus Armbruster 2015-02-12 17:07:34 +01:00
parent 39101f2511
commit 79087c782e
5 changed files with 22 additions and 18 deletions

View file

@ -690,19 +690,18 @@ void qemu_opts_loc_restore(QemuOpts *opts)
loc_restore(&opts->loc);
}
int qemu_opts_set(QemuOptsList *list, const char *id,
const char *name, const char *value)
void qemu_opts_set(QemuOptsList *list, const char *id,
const char *name, const char *value, Error **errp)
{
QemuOpts *opts;
Error *local_err = NULL;
opts = qemu_opts_create(list, id, 1, &local_err);
if (local_err) {
qerror_report_err(local_err);
error_free(local_err);
return -1;
error_propagate(errp, local_err);
return;
}
return qemu_opt_set(opts, name, value);
qemu_opt_set_err(opts, name, value, errp);
}
const char *qemu_opts_id(QemuOpts *opts)