diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2021-03-25 12:41:41 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2021-03-25 12:44:25 -0700 |
commit | 5b3a6f94f866b02761105b55dfdfad4379a640bf (patch) | |
tree | f11d0029599edc4c1196a1a4dce635cbf40c5f10 /lib/striconveh.c | |
parent | a37df18aae6c52fab2c7efebff28585e5365268e (diff) | |
download | gnulib-5b3a6f94f866b02761105b55dfdfad4379a640bf.tar.gz |
free-posix: use more often in other modules
This lets us simplify cleanup code that calls ‘free’.
* lib/amemxfrm.c (amemxfrm):
* lib/areadlink-with-size.c (areadlink_with_size):
* lib/areadlinkat-with-size.c (areadlinkat_with_size):
* lib/astrxfrm.c (astrxfrm):
* lib/dprintf.c (dprintf):
* lib/execute.c (execute):
* lib/execvpe.c (execvpe):
* lib/fchdir.c (get_name):
* lib/file-has-acl.c (file_has_acl):
* lib/fprintf.c (fprintf):
* lib/getcwd-lgpl.c (rpl_getcwd):
* lib/getgroups.c (rpl_getgroups):
* lib/link.c (link, rpl_link):
* lib/linkat.c (link_immediate, link_follow, linkat_follow):
* lib/localename.c (newlocale, duplocale):
* lib/mgetgroups.c (mgetgroups):
* lib/mountlist.c (read_file_system_list):
* lib/pipe-filter-gi.c (pipe_filter_gi_close):
* lib/putenv.c (_unsetenv, putenv):
* lib/read-file.c (read_file):
* lib/rename.c (rpl_rename):
* lib/savedir.c (streamsavedir, savedir):
* lib/spawni.c (do_open, __spawni):
* lib/spawn-pipe.c (create_pipe):
* lib/striconv.c (mem_cd_iconv, str_cd_iconv, str_iconv):
* lib/striconveh.c (mem_cd_iconveh_internal, str_cd_iconveh)
(mem_iconveh, str_iconveh):
* lib/supersede.c (open_supersede, close_supersede):
* lib/vasnprintf.c (VASNPRINTF):
* lib/vdprintf.c (vdprintf):
* lib/vfprintf.c (vfprintf):
* lib/wcscoll-impl.h (wcscoll):
* lib/wcsxfrm-impl.h (wcsxfrm):
* lib/xgetdomainname.c (xgetdomainname):
* lib/xgethostname.c (xgethostname):
Simplify by assuming that ‘free’ preserves errno.
* lib/localename.c: Do not include errno.h.
* modules/amemxfrm, modules/areadlink-with-size:
* modules/areadlinkat-with-size, modules/astrxfrm:
* modules/c-vasnprintf, modules/dprintf, modules/execute:
* modules/execvpe, modules/fchdir, modules/file-has-acl:
* modules/fprintf-posix, modules/getcwd-lgpl, modules/getgroups:
* modules/link, modules/linkat, modules/localename:
* modules/mgetgroups, modules/mountlist, modules/pipe-filter-gi:
* modules/posix_spawn-internal, modules/putenv, modules/read-file:
* modules/rename, modules/savedir, modules/spawn-pipe:
* modules/striconv, modules/striconveh, modules/supersede:
* modules/vasnprintf, modules/vdprintf, modules/vfprintf-posix:
* modules/wcscoll, modules/wcsxfrm, modules/xgetdomainname:
* modules/xgethostname:
Depend on free-posix.
Diffstat (limited to 'lib/striconveh.c')
-rw-r--r-- | lib/striconveh.c | 47 |
1 files changed, 7 insertions, 40 deletions
diff --git a/lib/striconveh.c b/lib/striconveh.c index d31d842ca1..6b0e38b8de 100644 --- a/lib/striconveh.c +++ b/lib/striconveh.c @@ -499,11 +499,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen, else { if (result != initial_result) - { - int saved_errno = errno; - free (result); - errno = saved_errno; - } + free (result); return -1; } } @@ -570,11 +566,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen, else { if (result != initial_result) - { - int saved_errno = errno; - free (result); - errno = saved_errno; - } + free (result); return -1; } } @@ -683,11 +675,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen, && !(errno == E2BIG || errno == EINVAL || errno == EILSEQ)) { if (result != initial_result) - { - int saved_errno = errno; - free (result); - errno = saved_errno; - } + free (result); return -1; } if (res1 == (size_t)(-1) @@ -907,22 +895,14 @@ mem_cd_iconveh_internal (const char *src, size_t srclen, { /* Failure converting the ASCII replacement. */ if (result != initial_result) - { - int saved_errno = errno; - free (result); - errno = saved_errno; - } + free (result); return -1; } } else { if (result != initial_result) - { - int saved_errno = errno; - free (result); - errno = saved_errno; - } + free (result); return -1; } } @@ -1041,12 +1021,7 @@ str_cd_iconveh (const char *src, if (retval < 0) { - if (result != NULL) - { - int saved_errno = errno; - free (result); - errno = saved_errno; - } + free (result); return NULL; } @@ -1118,12 +1093,8 @@ mem_iconveh (const char *src, size_t srclen, { if (iconveh_close (&cd) < 0) { - /* Return -1, but free the allocated memory, and while doing - that, preserve the errno from iconveh_close. */ - int saved_errno = errno; - if (result != *resultp && result != NULL) + if (result != *resultp) free (result); - errno = saved_errno; return -1; } *resultp = result; @@ -1177,11 +1148,7 @@ str_iconveh (const char *src, { if (iconveh_close (&cd) < 0) { - /* Return NULL, but free the allocated memory, and while doing - that, preserve the errno from iconveh_close. */ - int saved_errno = errno; free (result); - errno = saved_errno; return NULL; } } |