qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 05/17] qapi: introduce OptsVisitor


From: Luiz Capitulino
Subject: Re: [Qemu-devel] [PATCH v2 05/17] qapi: introduce OptsVisitor
Date: Mon, 16 Jul 2012 14:30:57 -0300

On Sat, 14 Jul 2012 00:48:58 +0200
Laszlo Ersek <address@hidden> wrote:

> On 07/13/12 18:51, Luiz Capitulino wrote:
> > On Wed, 13 Jun 2012 10:22:36 +0200
> > Laszlo Ersek <address@hidden> wrote:
> 
> >> Repeating an optarg is supported;
> >
> > I see that the current code supports this too, but why? Something
> > like this should fail:
> >
> >  -netdev type=tap,vhost=on,vhost=off,id=guest1,script=qemu-ifup-switch
> 
> > Also, you're using a queue to support the repeating of optargs,
> > right? I think this could be simplified if we just don't support
> > that.
> 
> I hate repeated options with a passion, but SLIRP's hostfwd and guestfwd
> depend on repetition.

Oh, I see. I think it would be nicer to have a flag for this in QemuOptsList,
but that's unrelated to this series.

> > This doesn't insert the opts id into the hash, so opts_type_str()
> > will fail to find the id when the generated code visits it here:
> >
> > void visit_type_Netdev(Visitor *m, Netdev ** obj, const char *name, Error 
> > **errp)
> > {
> >     if (!error_is_set(errp)) {
> >         Error *err = NULL;
> >         visit_start_struct(m, (void **)obj, "Netdev", name, sizeof(Netdev), 
> > &err);
> >         if (!err) {
> >             assert(!obj || *obj);
> >             visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 
> > <---------
> > [...]
> >
> 
> *groan*
> 
> You're right. opts_do_parse() makes an exception with "id" and doesn't
> call opt_set() for any occurrence of it. Would you accept the attached
> fix, split up and squashed into previous parts appropriately?

I've glanced at it and it looked fine, but I'll wait for v3 to do a full
review again.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]