[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] qapi: clear given pointer
From: |
Marc-André Lureau |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] qapi: clear given pointer |
Date: |
Wed, 21 Sep 2016 11:17:45 -0400 (EDT) |
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.
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.
>
> Alternatively, we could say that '*obj' should never be touched
> on error paths, in which case we've a bunchof cleanup todo
> in qmp_input_visitor to avoid splattering *obj.
>
> 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 :|
>