[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.
- [PATCH 21/46] hmp: Eliminate a variable in hmp_migrate_set_parameter(), (continued)
- [PATCH 21/46] hmp: Eliminate a variable in hmp_migrate_set_parameter(), Markus Armbruster, 2020/06/24
- [PATCH 29/46] acpi: Avoid unnecessary error_propagate() after error_setg(), Markus Armbruster, 2020/06/24
- [PATCH 41/46] qdev: Make functions taking Error ** return bool, not void, Markus Armbruster, 2020/06/24
- [PATCH 19/46] block: Avoid unnecessary error_propagate() after error_setg(), Markus Armbruster, 2020/06/24
- [PATCH 36/46] qom: Put name parameter before value / visitor parameter, Markus Armbruster, 2020/06/24
- [PATCH 22/46] qapi: Make visitor functions taking Error ** return bool, not void, Markus Armbruster, 2020/06/24
- [PATCH 42/46] qdev: Smooth error checking with Coccinelle, Markus Armbruster, 2020/06/24
- Re: [PATCH 00/46] Less clumsy error checking, Paolo Bonzini, 2020/06/24