[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 01/31] errp: rename errp to errp_in where it is IN-argumen
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v4 01/31] errp: rename errp to errp_in where it is IN-argument |
Date: |
Tue, 08 Oct 2019 14:05:18 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) |
Vladimir Sementsov-Ogievskiy <address@hidden> writes:
> 08.10.2019 12:08, Markus Armbruster wrote:
>> Vladimir Sementsov-Ogievskiy <address@hidden> writes:
>>
>>> Error **errp is almost always OUT-argument: it's assumed to be NULL, or
>>> pointer to NULL-initialized pointer, or pointer to error_abort or
>>> error_fatal, for callee to report error.
>>
>> Yes.
>>
>>> But very few functions instead get Error **errp as IN-argument:
>>> it's assumed to be set, and callee should clean it.
>>
>> What do you mean by "callee should clean"? Let's see below.
>>
>>> In such cases, rename errp to errp_in.
>>
>> I acknowledge that errp arguments that don't have the usual meaning can
>> be confusing.
>>
>> Naming can help, comments can help, but perhaps we can tweak the code to
>> avoid the problem instead. Let's see:
>>
>>> Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
>>> Reviewed-by: Eric Blake <address@hidden>
[...]
>> We can avoid the confusing Error **errp in all three cases by peeling
>> off an indirection. What do you think?
>>
>
> I like the idea, thanks! I think, I'll try to make a patch.
>
> But you are right, unfortunately there more cases, at least, pointed by
> Greg
>
> error_append_socket_sockfd_hint and
> error_append_security_model_hint
>
> Which don't free error..
Neither do error_append_hint() and error_prepend().
For anything named error_append_FOO_hint() or error_prepend_FOO(),
confusion seems unlikely.
> But if they append hint, they should always be called
> on wrapped errp, accordingly to the problem about fatal_error, so they may
> be converted to Error *err too.. Hmm, I should think about the script to find
> such functions.
I figure I better read more of your series before I comment on this
thought.
[PATCH v4 02/31] hw/core/loader-fit: fix freeing errp in fit_load_fdt, Vladimir Sementsov-Ogievskiy, 2019/10/01
[PATCH v4 08/31] ARM TCG CPUs: Fix error_append_hint/error_prepend usage, Vladimir Sementsov-Ogievskiy, 2019/10/01
[PATCH v4 12/31] ASPEED BMCs: Fix error_append_hint/error_prepend usage, Vladimir Sementsov-Ogievskiy, 2019/10/01
[PATCH v4 15/31] PCI: Fix error_append_hint/error_prepend usage, Vladimir Sementsov-Ogievskiy, 2019/10/01