Commit Message

This is a macro similar to RET_ERR but useful in the case when we need
to record an error and then jump to some cleanup section.
Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
---
lib/libalpm/util.h | 5 +++++
1 file changed, 5 insertions(+)

On 9/3/20 6:06 am, Anatol Pomozov wrote:
> Hi> > On Sat, Mar 7, 2020 at 9:55 PM Allan McRae <allan@archlinux.org> wrote:>>>> On 7/3/20 6:00 am, Anatol Pomozov wrote:>>> This is a macro similar to RET_ERR but useful in the case when we need>>> to record an error and then jump to some cleanup section.>>>>>> Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>>>> --->>> lib/libalpm/util.h | 5 +++++>>> 1 file changed, 5 insertions(+)>>>>>> diff --git a/lib/libalpm/util.h b/lib/libalpm/util.h>>> index 9827b2c1..ce80b32b 100644>>> --- a/lib/libalpm/util.h>>> +++ b/lib/libalpm/util.h>>> @@ -71,6 +71,11 @@ void _alpm_alloc_fail(size_t size);>>> (handle)->pm_errno = (err); \>>> return (ret); } while(0)>>>>>> +#define GOTO_ERR(handle, err, label) do { \>>> + _alpm_log(handle, ALPM_LOG_DEBUG, "got error %d at %s:%d : %s\n", err, __func__, __LINE__, alpm_strerror(err)); \>>> + (handle)->pm_errno = (err); \>>> + goto label; } while(0)>>> +>>>> This is OK. And there are dozens of places it could be used.>>>> Do we need __LINE__? I note we don't use it in RET_ERR, and I am not a>> fan of it... Function and error should be enough, or we need more>> specific error codes.> > There could be multiple RET_ERR/GOTO_ERR places in one function. How> to distinguish between those different error points?
I was thinking we need more specific error codes if it is not clear, but
I guess we can see the same error in multiple places. I'm OK keeping
__LINE__ if there are not objections.
A