qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v8 06/26] qapi-types: Convert to QAPISchemaVisit


From: Daniel P. Berrange
Subject: Re: [Qemu-devel] [PATCH v8 06/26] qapi-types: Convert to QAPISchemaVisitor, fixing flat unions
Date: Wed, 16 Sep 2015 15:54:10 +0100
User-agent: Mutt/1.5.23 (2014-03-12)

On Wed, Sep 16, 2015 at 01:06:09PM +0200, Markus Armbruster wrote:
> Fixes flat unions to get the base's base members.  Test case is from
> commit 2fc0043, in qapi-schema-test.json:
> 
>     { 'union': 'UserDefFlatUnion',
>       'base': 'UserDefUnionBase',
>       'discriminator': 'enum1',
>       'data': { 'value1' : 'UserDefA',
>                 'value2' : 'UserDefB',
>                 'value3' : 'UserDefB' } }
> 
>     { 'struct': 'UserDefUnionBase',
>       'base': 'UserDefZero',
>       'data': { 'string': 'str', 'enum1': 'EnumOne' } }
> 
>     { 'struct': 'UserDefZero',
>       'data': { 'integer': 'int' } }
> 
> Patch's effect on UserDefFlatUnion:
> 
>      struct UserDefFlatUnion {
>          /* Members inherited from UserDefUnionBase: */
>     +    int64_t integer;
>          char *string;
>          EnumOne enum1;
>          /* Own members: */
>          union { /* union tag is @enum1 */
>              void *data;
>              UserDefA *value1;
>              UserDefB *value2;
>              UserDefB *value3;
>          };
>      };
> 
> Flat union visitors remain broken.  They'll be fixed next.
> 
> Two ugly special cases for simple unions now stand out like sore
> thumbs:
> 
> 1. The type tag is named 'type' everywhere, except in generated C,
>    where it's 'kind'.
> 
> 2. QAPISchema lowers simple unions to semantically equivalent flat
>    unions.  However, the C generated for a simple unions differs from
>    the C generated for its equivalent flat union, and we therefore
>    need special code to preserve that pointless difference for now.
> 
> Mark both TODO.
> 
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
>  docs/qapi-code-gen.txt                  |  51 +++---
>  scripts/qapi-types.py                   | 286 
> ++++++++++++++------------------
>  scripts/qapi.py                         |  10 +-
>  tests/qapi-schema/qapi-schema-test.json |   4 +-
>  4 files changed, 164 insertions(+), 187 deletions(-)

Reviewed-by: Daniel P. Berrange <address@hidden>

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]