diff options
author | Luiz Capitulino <lcapitulino@redhat.com> | 2012-03-21 16:13:24 -0300 |
---|---|---|
committer | Luiz Capitulino <lcapitulino@redhat.com> | 2012-06-04 13:49:34 -0300 |
commit | 584d4064c6de5c9f2f555d7afebbbde59c741b8f (patch) | |
tree | 777ce4dd962afabc75962b3f9c1d79ed30b5ea54 /qemu-option.c | |
parent | 299528668c759f40b2cc78914e2ca2c832f82834 (diff) |
qemu-option: opt_set(): use error_set()
The functions qemu_opt_set() and opts_do_parse() both call opt_set(),
but their callers expect QError semantics. Thus, both functions call
qerro_report_err() to keep the expected semantics.
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Reviewed-By: Laszlo Ersek <lersek@redhat.com>
Diffstat (limited to 'qemu-option.c')
-rw-r--r-- | qemu-option.c | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/qemu-option.c b/qemu-option.c index eee3b45d23..7af2b50a43 100644 --- a/qemu-option.c +++ b/qemu-option.c @@ -612,8 +612,8 @@ static void qemu_opt_del(QemuOpt *opt) g_free(opt); } -static int opt_set(QemuOpts *opts, const char *name, const char *value, - bool prepend) +static void opt_set(QemuOpts *opts, const char *name, const char *value, + bool prepend, Error **errp) { QemuOpt *opt; const QemuOptDesc *desc = opts->list->desc; @@ -629,8 +629,8 @@ static int opt_set(QemuOpts *opts, const char *name, const char *value, if (i == 0) { /* empty list -> allow any */; } else { - qerror_report(QERR_INVALID_PARAMETER, name); - return -1; + error_set(errp, QERR_INVALID_PARAMETER, name); + return; } } @@ -650,18 +650,23 @@ static int opt_set(QemuOpts *opts, const char *name, const char *value, } qemu_opt_parse(opt, &local_err); if (error_is_set(&local_err)) { - qerror_report_err(local_err); - error_free(local_err); + error_propagate(errp, local_err); qemu_opt_del(opt); - return -1; } - - return 0; } int qemu_opt_set(QemuOpts *opts, const char *name, const char *value) { - return opt_set(opts, name, value, false); + Error *local_err = NULL; + + opt_set(opts, name, value, false, &local_err); + if (error_is_set(&local_err)) { + qerror_report_err(local_err); + error_free(local_err); + return -1; + } + + return 0; } int qemu_opt_set_bool(QemuOpts *opts, const char *name, bool val) @@ -847,6 +852,7 @@ static int opts_do_parse(QemuOpts *opts, const char *params, { char option[128], value[1024]; const char *p,*pe,*pc; + Error *local_err = NULL; for (p = params; *p != '\0'; p++) { pe = strchr(p, '='); @@ -878,7 +884,10 @@ static int opts_do_parse(QemuOpts *opts, const char *params, } if (strcmp(option, "id") != 0) { /* store and parse */ - if (opt_set(opts, option, value, prepend) == -1) { + opt_set(opts, option, value, prepend, &local_err); + if (error_is_set(&local_err)) { + qerror_report_err(local_err); + error_free(local_err); return -1; } } |