On 01/20/2016 11:08 AM, Markus Armbruster wrote:
> Eric Blake <ebl...@redhat.com> writes:
> 
>> C compilers are allowed to represent enums as a smaller type
>> than int, if all enum values fit in the smaller type.  There
>> are even compiler flags that force the use of this smaller
>> representation, and using them changes the ABI of a binary.
> 
> Suggest "although using them".
> 

Okay.


>> with generated code changing as:
>>
>> | void visit_type_GuestDiskBusType(Visitor *v, GuestDiskBusType *obj, const 
>> char *name, Error **errp)
>> | {
>> |-    visit_type_enum(v, (int *)obj, GuestDiskBusType_lookup, 
>> "GuestDiskBusType", name, errp);
>> |+    int tmp = *obj;
>> |+    visit_type_enum(v, &tmp, GuestDiskBusType_lookup, "GuestDiskBusType", 
>> name, errp);
>> |+    *obj = tmp;
>> | }
> 
> Long lines.  Do we have an example with a shorter enum name handy?

Shortest is QType; runner-ups RxState and TpmType.


>>  void visit_type_%(c_name)s(Visitor *v, %(c_name)s *obj, const char *name, 
>> Error **errp)
>>  {
>> -    visit_type_enum(v, (int *)obj, %(c_name)s_lookup, "%(name)s", name, 
>> errp);
>> +    int tmp = *obj;
>> +    visit_type_enum(v, &tmp, %(c_name)s_lookup, "%(name)s", name, errp);
>> +    *obj = tmp;
>>  }
>>  ''',
>>                   c_name=c_name(name), name=name)
> 
> Same pattern in qapi-visit-core.c, except we name the variable @value
> there.  Your choice.

'value' sounds consistent. An easy swap on a respin.

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