[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/13] QemuOpts: Propagate errors through opts_do_pa
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH 07/13] QemuOpts: Propagate errors through opts_do_parse() |
Date: |
Mon, 16 Feb 2015 15:44:19 +0100 |
Signed-off-by: Markus Armbruster <address@hidden>
---
util/qemu-option.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/util/qemu-option.c b/util/qemu-option.c
index 928b86f..8a0f69e 100644
--- a/util/qemu-option.c
+++ b/util/qemu-option.c
@@ -750,8 +750,8 @@ void qemu_opts_print(QemuOpts *opts, const char *sep)
}
}
-static int opts_do_parse(QemuOpts *opts, const char *params,
- const char *firstname, bool prepend)
+static void opts_do_parse(QemuOpts *opts, const char *params,
+ const char *firstname, bool prepend, Error **errp)
{
char option[128], value[1024];
const char *p,*pe,*pc;
@@ -789,21 +789,27 @@ static int opts_do_parse(QemuOpts *opts, const char
*params,
/* store and parse */
opt_set(opts, option, value, prepend, &local_err);
if (local_err) {
- qerror_report_err(local_err);
- error_free(local_err);
- return -1;
+ error_propagate(errp, local_err);
+ return;
}
}
if (*p != ',') {
break;
}
}
- return 0;
}
int qemu_opts_do_parse(QemuOpts *opts, const char *params, const char
*firstname)
{
- return opts_do_parse(opts, params, firstname, false);
+ Error *err = NULL;
+
+ opts_do_parse(opts, params, firstname, false, &err);
+ if (err) {
+ qerror_report_err(err);
+ error_free(err);
+ return -1;
+ }
+ return 0;
}
static QemuOpts *opts_parse(QemuOptsList *list, const char *params,
@@ -843,7 +849,10 @@ static QemuOpts *opts_parse(QemuOptsList *list, const char
*params,
return NULL;
}
- if (opts_do_parse(opts, params, firstname, defaults) != 0) {
+ opts_do_parse(opts, params, firstname, defaults, &local_err);
+ if (local_err) {
+ qerror_report_err(local_err);
+ error_free(local_err);
qemu_opts_del(opts);
return NULL;
}
--
1.9.3
- [Qemu-devel] [PATCH 11/13] qemu-sockets: Simplify setting numeric and boolean options, (continued)
- [Qemu-devel] [PATCH 11/13] qemu-sockets: Simplify setting numeric and boolean options, Markus Armbruster, 2015/02/16
- [Qemu-devel] [PATCH 02/13] QemuOpts: Convert qemu_opt_set_number() to Error, fix its use, Markus Armbruster, 2015/02/16
- [Qemu-devel] [PATCH 08/13] QemuOpts: Propagate errors through opts_parse(), Markus Armbruster, 2015/02/16
- [Qemu-devel] [PATCH 12/13] pc: Use qemu_opt_set() instead of qemu_opts_parse(), Markus Armbruster, 2015/02/16
- [Qemu-devel] [PATCH 05/13] block: Suppress unhelpful extra errors in bdrv_img_create(), Markus Armbruster, 2015/02/16
- [Qemu-devel] [PATCH 07/13] QemuOpts: Propagate errors through opts_do_parse(),
Markus Armbruster <=
- [Qemu-devel] [PATCH 06/13] QemuOpts: Drop qemu_opt_set(), rename qemu_opt_set_err(), fix use, Markus Armbruster, 2015/02/16
- [Qemu-devel] [PATCH 03/13] QemuOpts: Convert qemu_opts_set() to Error, fix its use, Markus Armbruster, 2015/02/16
- Re: [Qemu-devel] [PATCH 00/13] QemuOpts: Convert various setters to Error, Markus Armbruster, 2015/02/17