[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] block: Remove trailing newline in format used by error_repor
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH] block: Remove trailing newline in format used by error_report API |
Date: |
Mon, 8 Jun 2020 08:14:44 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
On 6/8/20 6:45 AM, Markus Armbruster wrote:
> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
>
>> On 2/28/20 6:32 PM, Markus Armbruster wrote:
[...]
>>> warn_reportf_err() is a convenience function to error_prepend(),
>>> warn_report() and free @local_err.
> [...]
>> Why warn_reportf_err() doesn't take a 'Error **err' instead, to set err
>> to NULL after freeing *err?
>
> Why doesn't free() take a void ** argument, to set the pointer to null
> after freeing what it points to? Why doesn't close() take an int *
> argument?
=)
Usually I see the code checking an Error* hasn't been set by a callee.
If it has, the caller usually returns.
You explained me warn_reportf_err() consume Error* and free() it.
So regarding the rest of our Error* use, a function calling
warn_reportf_err has to do extra care to set Error* to NULL.
Genuinely looks confuse or dangerous to me...
Note however I was not asking for a change, just asking 'why'
to better understand if there were not a design problem, or
o invalid use of different APIs.
>
> [...]
>