Re: [PATCH v2 4/4] qemu-storage-daemon: Remove QemuOpts from --object parser
Kevin Wolf writes: > The command line parser for --object parses the input twice: Once into > QemuOpts just for detecting help options, and then again into a QDict > using the keyval parser for actually creating the object. > > Now that the keyval parser can also detect help options, we can simplify > this and remove the QemuOpts part. > > Signed-off-by: Kevin Wolf > --- > storage-daemon/qemu-storage-daemon.c | 15 --- > 1 file changed, 4 insertions(+), 11 deletions(-) > > diff --git a/storage-daemon/qemu-storage-daemon.c > b/storage-daemon/qemu-storage-daemon.c > index bb9cb740f0..7cbdbf0b23 100644 > --- a/storage-daemon/qemu-storage-daemon.c > +++ b/storage-daemon/qemu-storage-daemon.c > @@ -264,21 +264,14 @@ static void process_options(int argc, char *argv[]) > } > case OPTION_OBJECT: > { > -QemuOpts *opts; > -const char *type; > QDict *args; > +bool help; > > -/* FIXME The keyval parser rejects 'help' arguments, so we > must > - * unconditionall try QemuOpts first. */ > -opts = qemu_opts_parse(_object_opts, > - optarg, true, _fatal); > -type = qemu_opt_get(opts, "qom-type"); > -if (type && user_creatable_print_help(type, opts)) { > +args = keyval_parse(optarg, "qom-type", , _fatal); > +if (help) { > +user_creatable_print_help_from_qdict(args); > exit(EXIT_SUCCESS); > } > -qemu_opts_del(opts); > - > -args = keyval_parse(optarg, "qom-type", NULL, _fatal); > user_creatable_add_dict(args, true, _fatal); > qobject_unref(args); > break; Reviewed-by: Markus Armbruster
Re: [PATCH v2 4/4] qemu-storage-daemon: Remove QemuOpts from --object parser
On 9/30/20 7:45 AM, Kevin Wolf wrote: > The command line parser for --object parses the input twice: Once into > QemuOpts just for detecting help options, and then again into a QDict > using the keyval parser for actually creating the object. > > Now that the keyval parser can also detect help options, we can simplify > this and remove the QemuOpts part. > > Signed-off-by: Kevin Wolf > --- > storage-daemon/qemu-storage-daemon.c | 15 --- > 1 file changed, 4 insertions(+), 11 deletions(-) As with v1, Reviewed-by: Eric Blake -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org signature.asc Description: OpenPGP digital signature
[PATCH v2 4/4] qemu-storage-daemon: Remove QemuOpts from --object parser
The command line parser for --object parses the input twice: Once into QemuOpts just for detecting help options, and then again into a QDict using the keyval parser for actually creating the object. Now that the keyval parser can also detect help options, we can simplify this and remove the QemuOpts part. Signed-off-by: Kevin Wolf --- storage-daemon/qemu-storage-daemon.c | 15 --- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/storage-daemon/qemu-storage-daemon.c b/storage-daemon/qemu-storage-daemon.c index bb9cb740f0..7cbdbf0b23 100644 --- a/storage-daemon/qemu-storage-daemon.c +++ b/storage-daemon/qemu-storage-daemon.c @@ -264,21 +264,14 @@ static void process_options(int argc, char *argv[]) } case OPTION_OBJECT: { -QemuOpts *opts; -const char *type; QDict *args; +bool help; -/* FIXME The keyval parser rejects 'help' arguments, so we must - * unconditionall try QemuOpts first. */ -opts = qemu_opts_parse(_object_opts, - optarg, true, _fatal); -type = qemu_opt_get(opts, "qom-type"); -if (type && user_creatable_print_help(type, opts)) { +args = keyval_parse(optarg, "qom-type", , _fatal); +if (help) { +user_creatable_print_help_from_qdict(args); exit(EXIT_SUCCESS); } -qemu_opts_del(opts); - -args = keyval_parse(optarg, "qom-type", NULL, _fatal); user_creatable_add_dict(args, true, _fatal); qobject_unref(args); break; -- 2.25.4