On 31/01/2017 04:08, Marc-André Lureau wrote:
> Hi
> 
> On Tue, Jan 31, 2017 at 12:08 AM Paolo Bonzini <pbonz...@redhat.com
> <mailto:pbonz...@redhat.com>> wrote:
> 
> 
> 
>     On 30/01/2017 08:39, Marc-André Lureau wrote:
>     > The class kind is necessary to lookup the chardev name in
>     > qmp_chardev_add() after calling qemu_chr_new_from_opts() and to set
>     > the appropriate ChardevBackend (mainly to free the right
>     > fields).
>     >
>     > qemu_chr_new_from_opts() can be changed to use a non-qmp function
>     > using the chardev class typename. Introduce qemu_chardev_add() to be
>     > called from qemu_chr_new_from_opts() and remove the class chardev kind
>     > field. Set the backend->type in the parse callback (when non-common
>     > fields are added).
>     >
>     > Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com
>     <mailto:marcandre.lur...@redhat.com>>
>     > ---
>     >  include/sysemu/char.h |  1 -
>     >  backends/baum.c       |  1 -
>     >  backends/msmouse.c    |  1 -
>     >  backends/testdev.c    |  1 -
>     >  qemu-char.c           | 99
>     +++++++++++++++++++++++++--------------------------
>     >  spice-qemu-char.c     |  4 +--
>     >  ui/console.c          |  2 +-
>     >  ui/gtk.c              |  1 -
>     >  8 files changed, 51 insertions(+), 59 deletions(-)
> 
>     I am not sure about this patch.  Why not remove backend->type
>     altogether, and instead look at ChardevClass with object_dynamic_cast?
> 
> 
> For the reason I gave in the patch summary: qapi_free_ChardevBackend()
> dispatch based on ChardevBackendKind enum, not on Chardev object type.

Oops, I was confusing ChardevBackend and CharBackend!

Paolo

Reply via email to