This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

remove more useless if tests before free


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]