remove more useless if tests before free
Jim Meyering
jim@meyering.net
Mon May 26 17:16:00 GMT 2008
My useless-if-before-free script now handles casts of the
"free" argument, and rerunning it here found some more.
Then I ran this to remove them:
mkid
useless-if-before-free -l $(lid -knone free) | xargs -0 \
perl -0x3b -pi -e \
's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*NULL)?\s*\)\s+(free\s*\((?:\s*\([^)]+\))?\s*\1\s*\))/$2/s'
>From 78243b38b1b8d6304f8cf8440cd041b229539432 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering@redhat.com>
Date: Sun, 25 May 2008 17:37:07 +0200
Subject: [PATCH] Remove more useless "if"-before-free tests.
---
include/inline-hashtab.h | 3 +--
libio/freopen.c | 3 +--
libio/freopen64.c | 3 +--
locale/programs/ld-collate.c | 12 ++++--------
misc/fstab.c | 3 +--
5 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/include/inline-hashtab.h b/include/inline-hashtab.h
index ad361cd..c359161 100644
--- a/include/inline-hashtab.h
+++ b/include/inline-hashtab.h
@@ -142,8 +142,7 @@ htab_delete (struct hashtab *htab)
int i;
for (i = htab->size - 1; i >= 0; i--)
- if (htab->entries[i])
- free (htab->entries[i]);
+ free (htab->entries[i]);
if (htab->free)
htab->free (htab->entries);
diff --git a/libio/freopen.c b/libio/freopen.c
index d94a562..b52a9e7 100644
--- a/libio/freopen.c
+++ b/libio/freopen.c
@@ -80,8 +80,7 @@ freopen (filename, mode, fp)
if (fd != -1)
{
__close (fd);
- if (filename != NULL)
- free ((char *) filename);
+ free ((char *) filename);
}
_IO_release_lock (fp);
return result;
diff --git a/libio/freopen64.c b/libio/freopen64.c
index f8da78c..998ddb8 100644
--- a/libio/freopen64.c
+++ b/libio/freopen64.c
@@ -64,8 +64,7 @@ freopen64 (filename, mode, fp)
if (fd != -1)
{
__close (fd);
- if (filename != NULL)
- free ((char *) filename);
+ free ((char *) filename);
}
_IO_release_lock (fp);
return result;
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index 7af3b8a..bf50e77 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -2961,8 +2961,7 @@ collate_read (struct linereader *ldfile, struct localedef_t *result,
else
{
col_elem_free:
- if (symbol != NULL)
- free ((char *) symbol);
+ free ((char *) symbol);
free (arg->val.str.startmb);
free (arg->val.str.startwc);
}
@@ -3142,8 +3141,7 @@ collate_read (struct linereader *ldfile, struct localedef_t *result,
arg = lr_token (ldfile, charmap, result, repertoire, verbose);
if (arg->tok != tok_bsymbol)
{
- if (newname != NULL)
- free ((char *) newname);
+ free ((char *) newname);
goto err_label;
}
@@ -3157,10 +3155,8 @@ collate_read (struct linereader *ldfile, struct localedef_t *result,
"LC_COLLATE");
sym_equiv_free:
- if (newname != NULL)
- free ((char *) newname);
- if (symname != NULL)
- free ((char *) symname);
+ free ((char *) newname);
+ free ((char *) symname);
break;
}
if (symname == NULL)
diff --git a/misc/fstab.c b/misc/fstab.c
index b434203..32701e5 100644
--- a/misc/fstab.c
+++ b/misc/fstab.c
@@ -185,6 +185,5 @@ libc_freeres_fn (fstab_free)
char *buffer;
buffer = fstab_state.fs_buffer;
- if (buffer != NULL)
- free ((void *) buffer);
+ free ((void *) buffer);
}
--
1.5.5.1.383.g8078b
More information about the Libc-alpha
mailing list