qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 36/46] qom: Put name parameter before value / visitor paramet


From: Markus Armbruster
Subject: Re: [PATCH 36/46] qom: Put name parameter before value / visitor parameter
Date: Thu, 25 Jun 2020 17:14:01 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Eric Blake <eblake@redhat.com> writes:

> On 6/24/20 11:43 AM, Markus Armbruster wrote:
>> The object_property_set_FOO() setters take property name and value in
>> an unusual order:
>>
>>      void object_property_set_FOO(Object *obj, FOO_TYPE value,
>>                                   const char *name, Error **errp)
>>
>> Having to pass value before name feels grating.  Swap them.
>>
>> Same for object_property_set(), object_property_get(), and
>> object_property_parse().
>>
>> Convert callers with this Coccinelle script:
>>
>>      @@
>>      identifier fun = {object_property_get, object_property_parse, 
>> object_property_set_str, object_property_set_link, object_property_set_bool, 
>> object_property_set_int, object_property_set_uint, object_property_set, 
>> object_property_set_qobject};
>>      expression obj, v, name, errp;
>>      @@
>>      -    fun(obj, v, name, errp)
>>      +    fun(obj, name, v, errp)
>>
>> Chokes on hw/arm/musicpal.c's lcd_refresh() with the unhelpful error
>> message "no position information".  Convert that one manually.
>>
>> Fails to convert hw/arm/armsse.c, because Coccinelle gets confused by
>> ARMSSE being used both as typedef and function-like macro there.
>> Convert manually.
>>
>> Fails to convert hw/rx/rx-gdbsim.c, because Coccinelle gets confused
>> by RXCPU being used both as typedef and function-like macro there.
>> Convert manually.  Convert that one manually.  The other files using
>> RXCPU that way don't need conversion.
>>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>
>>   136 files changed, 702 insertions(+), 729 deletions(-)
>
> Big but mechanical.
>
> Reviewed-by: Eric Blake <eblake@redhat.com>
>
> This one might be a semantic conflict magnet with patches written in
> the meantime;

You bet!

>               I guess the trick is to check that 'git grep' finds as
> many calls to any of the functions listed as conversions.

I throw away the old patch and rerun Coccinelle.  Works except when I
rebase onto changes to the files containing the functions that change,
because my Coccinelle script only updates calls, not definitions.
Hasn't been an issue so far.




reply via email to

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