This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] io/fts.c: Remove redundant checks
- From: Jim Meyering <jim at meyering dot net>
- To: libc-alpha at sourceware dot org, bug-gnulib at gnu dot org
- Date: Wed, 04 Oct 2006 10:25:12 +0200
- Subject: Re: [PATCH] io/fts.c: Remove redundant checks
- References: <20061002144303.GA8302@nomad.office.altlinux.org>
"Dmitry V. Levin" <ldv@altlinux.org> wrote:
> 2006-10-02 Dmitry V. Levin <ldv@altlinux.org>
>
> * io/fts.c (fts_close, fts_build, fts_palloc): Remove redundant
> checks.
Thank you.
I've applied those changes to the version of fts.c in gnulib, too.
If you have applications that use fts and that can tolerate
a different ABI, you should consider using the gnulib version:
it has fewer limitations, and is thread-safe and more efficient.
> --- glibc-2.5.orig/io/fts.c
> +++ glibc-2.5/io/fts.c
> @@ -251,8 +251,7 @@ fts_close(sp)
> /* Free up child linked list, sort array, path buffer. */
> if (sp->fts_child)
> fts_lfree(sp->fts_child);
> - if (sp->fts_array)
> - free(sp->fts_array);
> + free(sp->fts_array);
> free(sp->fts_path);
>
> /* Return to original directory, save errno if necessary. */
> @@ -705,8 +704,7 @@ fts_build(sp, type)
> * structures already allocated.
> */
> mem1: saved_errno = errno;
> - if (p)
> - free(p);
> + free(p);
> fts_lfree(head);
> (void)__closedir(dirp);
> cur->fts_info = FTS_ERR;
> @@ -1043,10 +1041,7 @@ fts_palloc(sp, more)
> * We limit fts_pathlen to USHRT_MAX to be safe in both cases.
> */
> if (sp->fts_pathlen < 0 || sp->fts_pathlen >= USHRT_MAX) {
> - if (sp->fts_path) {
> - free(sp->fts_path);
> - sp->fts_path = NULL;
> - }
> + free(sp->fts_path);
> sp->fts_path = NULL;
> __set_errno (ENAMETOOLONG);
> return (1);
>
> --
> ldv