qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v11 10/24] qapi: Unbox base members


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH v11 10/24] qapi: Unbox base members
Date: Tue, 27 Oct 2015 08:20:58 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 10/27/2015 01:52 AM, Markus Armbruster wrote:
> Eric Blake <address@hidden> writes:
> 
>> Rather than storing a base class as a pointer to a box, just
>> store the fields of that base class in the same order, so that
>> a child struct can be directly cast to its parent.  This gives
>> less malloc overhead, less pointer dereferencing, and even less
>> generated code.  Compare to the earlier commit 1e6c1616a "qapi:
>> Generate a nicer struct for flat unions" (although that patch
>> had fewer places to change, as less of qemu was directly using
>> qapi structs for flat unions).  It also allows us to turn on
>> automatic type-safe wrappers for upcasting to the base class
>> of a struct.
>>
>> Changes to the generated code look like this in qapi-types.h:
>>
>> | struct SpiceChannel {
>> |-    SpiceBasicInfo *base;
>> |+    /* Members inherited from SpiceBasicInfo: */
>> |+    char *host;
>> |+    char *port;
>> |+    NetworkAddressFamily family;
>> |+    /* Own members: */
>> |     int64_t connection_id;
>>
>> as well as added upcast functions like qapi_SpiceChannel_base().
> 
> "additional upcast functions" sounds better to my ears.

Indeed.

> 
> Patch looks good.  I can touch up the commit message in my tree.

Yay - looks like we won't need a v12.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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