From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PULL 08/13] QemuOpts: Propagate errors through opts_parse()
Date: Thu, 26 Feb 2015 15:07:23 +0100 [thread overview]
Message-ID: <1424959648-14721-9-git-send-email-armbru@redhat.com> (raw)
In-Reply-To: <1424959648-14721-1-git-send-email-armbru@redhat.com>
Since I'm touching qemu_opts_parse() anyway, write a function comment
for it.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
util/qemu-option.c | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/util/qemu-option.c b/util/qemu-option.c
index 8a0f69e..95f242e 100644
--- a/util/qemu-option.c
+++ b/util/qemu-option.c
@@ -813,7 +813,7 @@ int qemu_opts_do_parse(QemuOpts *opts, const char *params, const char *firstname
}
static QemuOpts *opts_parse(QemuOptsList *list, const char *params,
- int permit_abbrev, bool defaults)
+ int permit_abbrev, bool defaults, Error **errp)
{
const char *firstname;
char value[1024], *id = NULL;
@@ -842,17 +842,13 @@ static QemuOpts *opts_parse(QemuOptsList *list, const char *params,
assert(!defaults || list->merge_lists);
opts = qemu_opts_create(list, id, !defaults, &local_err);
if (opts == NULL) {
- if (local_err) {
- qerror_report_err(local_err);
- error_free(local_err);
- }
+ error_propagate(errp, local_err);
return NULL;
}
opts_do_parse(opts, params, firstname, defaults, &local_err);
if (local_err) {
- qerror_report_err(local_err);
- error_free(local_err);
+ error_propagate(errp, local_err);
qemu_opts_del(opts);
return NULL;
}
@@ -860,10 +856,25 @@ static QemuOpts *opts_parse(QemuOptsList *list, const char *params,
return opts;
}
+/**
+ * Create a QemuOpts in @list and with options parsed from @params.
+ * If @permit_abbrev, the first key=value in @params may omit key=,
+ * and is treated as if key was @list->implied_opt_name.
+ * Report errors with qerror_report_err().
+ * Return the new QemuOpts on success, null pointer on error.
+ */
QemuOpts *qemu_opts_parse(QemuOptsList *list, const char *params,
int permit_abbrev)
{
- return opts_parse(list, params, permit_abbrev, false);
+ Error *err = NULL;
+ QemuOpts *opts;
+
+ opts = opts_parse(list, params, permit_abbrev, false, &err);
+ if (!opts) {
+ qerror_report_err(err);
+ error_free(err);
+ }
+ return opts;
}
void qemu_opts_set_defaults(QemuOptsList *list, const char *params,
@@ -871,7 +882,7 @@ void qemu_opts_set_defaults(QemuOptsList *list, const char *params,
{
QemuOpts *opts;
- opts = opts_parse(list, params, permit_abbrev, true);
+ opts = opts_parse(list, params, permit_abbrev, true, NULL);
assert(opts);
}
--
1.9.3
next prev parent reply other threads:[~2015-02-26 14:07 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-26 14:07 [Qemu-devel] [PULL 00/13] QemuOpts: Convert various setters to Error Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 01/13] QemuOpts: Convert qemu_opt_set_bool() to Error, fix its use Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 02/13] QemuOpts: Convert qemu_opt_set_number() " Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 03/13] QemuOpts: Convert qemu_opts_set() " Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 04/13] qemu-img: Suppress unhelpful extra errors in convert, resize Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 05/13] block: Suppress unhelpful extra errors in bdrv_img_create() Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 06/13] QemuOpts: Drop qemu_opt_set(), rename qemu_opt_set_err(), fix use Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 07/13] QemuOpts: Propagate errors through opts_do_parse() Markus Armbruster
2015-02-26 14:07 ` Markus Armbruster [this message]
2015-02-26 14:07 ` [Qemu-devel] [PULL 09/13] qemu-img: Suppress unhelpful extra errors in convert, amend Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 10/13] block: Simplify setting numeric options Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 11/13] qemu-sockets: Simplify setting numeric and boolean options Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 12/13] pc: Use qemu_opt_set() instead of qemu_opts_parse() Markus Armbruster
2015-02-26 14:07 ` [Qemu-devel] [PULL 13/13] qtest: " Markus Armbruster
2015-03-03 10:03 ` [Qemu-devel] [PULL 00/13] QemuOpts: Convert various setters to Error Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1424959648-14721-9-git-send-email-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).