On 10/13/2015 06:12 AM, Markus Armbruster wrote: > Eric Blake <[email protected]> writes: > >> Rather than having all callers pass a name, type, and optional >> flag, have them instead pass a QAPISchemaObjectTypeMember which >> already has all that information. >> >> This will allow a future patch to simplify alternates to use >> a special tag 'qtype_code type'. In the meantime, it requires >> a hack to create a temporary member 'base' for struct base >> classes; this temporary member will go away in a later patch >> that flattens structs in the same way that flat union base >> classes were flattened in commit 1e6c1616. >> >> No change to generated code. >> >> Signed-off-by: Eric Blake <[email protected]> >>
>>
>> if base:
>> - ret += gen_struct_field('base', base, False)
>> + # TODO Flatten this struct, similar to flat union bases. Until
>> + # then, hack around it with a temporary member.
>> + member = QAPISchemaObjectTypeMember('base', base.name, False)
>> + member.type = base
>> + ret += gen_struct_field(member)
>>
>> ret += gen_struct_fields(members)
>
> Uff! Are you really, really sure this is the right spot in the series
> for this transformation?
Serves me right for sending the series late at night. I can probably
delay this transformation to a later subset, after I have unboxed struct
base members, so I won't need this hack. And I just confirmed that
nothing else in subset B depends on this patch, so let's defer it to
subset C or later (dropping from this series is not sufficient reason
for a v9 respin, but if something else turns up that needs a v9, this
patch has been moved out).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
