On 10/13/2015 06:12 AM, Markus Armbruster wrote:
> Eric Blake <ebl...@redhat.com> 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 <ebl...@redhat.com>
>>

>>
>>      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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to