qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2/3] qapi: clear given pointer


From: Daniel P. Berrange
Subject: Re: [Qemu-devel] [PATCH 2/3] qapi: clear given pointer
Date: Wed, 21 Sep 2016 16:34:14 +0100
User-agent: Mutt/1.7.0 (2016-08-17)

On Wed, Sep 21, 2016 at 11:17:45AM -0400, Marc-André Lureau wrote:
> Hi
> 
> ----- Original Message -----
> > On Wed, Sep 21, 2016 at 02:36:28PM +0400, Marc-André Lureau wrote:
> > > Some getters already set *obj argument to NULL early, let's do this for
> > > all for consistent behaviour in case of errors.
> > > 
> > > Signed-off-by: Marc-André Lureau <address@hidden>
> > 
> > If we want consistent behaviour, there's plenty more visit methods
> > that need updating beyond these two.  eg input_type_int64 will
> > leave '*obj' untouched on error.
> > 
> > In fact if we want to have '*obj' given a NULL value on error,
> > then it seems we should instead add code to 'qapi-visit-core.c'
> > to always initialize '*obj' to NULL, instead of doing it in
> > qmp-input-visitor.c That way all visitor implementations get
> > the same behaviour
> 
> I think that's not easily doable, as an input visitor will want to set *obj 
> (to NULL or something), but the output visitor may need *obj != NULL as an 
> input.

Oh good point.

> It'snot really elegant that there is visitor-input/output specific code 
> already in the visit-core, I would rather have that code in the respective 
> visitors.


Also, my series of visitor patches will delete opts-visitor and
string-input-visitor, so ultimately qmp-input-visitor will be
the only one left doing input work.


Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|



reply via email to

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