[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Remove useless "if" tests before free. Deprecate "free" module.
From: |
Jim Meyering |
Subject: |
[PATCH] Remove useless "if" tests before free. Deprecate "free" module. |
Date: |
Sat, 01 Mar 2008 09:48:05 +0100 |
Here's a proposed patch to remove all redundant "if"-before-free
tests in the tests/ directory and in the lib/*.c files not owned
by Bruno. It also deprecates (in comments and documentation) the
free module. Paul ok'd that part.
Simon, this affects two files that are yours: lib/gc-gnulib.c and
lib/getaddrinfo.c. Please let me know if this is ok with you.
If not, I'll be happy to remove them from the list.
-----
Remove useless "if" tests before free. Deprecate "free" module.
* doc/posix-functions/free.texi: Mention that this
module is no longer useful.
* modules/free: Add comments to the same effect.
* modules/readutmp (Depends-on): Remove free.
* lib/save-cwd.c (free_cwd): Remove useless "if" before free.
* lib/putenv.c (putenv): Likewise.
* lib/gc-gnulib.c (gc_cipher_close): Likewise.
* lib/getaddrinfo.c (freeaddrinfo): Likewise.
* tests/test-c-strcasestr.c (main): Likewise.
* tests/test-c-strstr.c (main): Likewise.
* tests/test-mbscasestr1.c (main): Likewise.
* tests/test-mbscasestr2.c (main): Likewise.
* tests/test-mbsstr1.c (main): Likewise.
* tests/test-mbsstr2.c (main): Likewise.
* tests/test-memmem.c (main): Likewise.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-striconv.c (main): Likewise.
* tests/test-striconveh.c (main): Likewise.
* tests/test-striconveha.c (main): Likewise.
* tests/test-strstr.c (main): Likewise.
Signed-off-by: Jim Meyering <address@hidden>
---
doc/posix-functions/free.texi | 5 ++++-
lib/gc-gnulib.c | 3 +--
lib/getaddrinfo.c | 2 +-
lib/putenv.c | 5 ++---
lib/save-cwd.c | 3 +--
modules/free | 5 ++++-
modules/readutmp | 1 -
tests/test-c-strcasestr.c | 6 ++----
tests/test-c-strstr.c | 6 ++----
tests/test-mbscasestr1.c | 6 ++----
tests/test-mbscasestr2.c | 6 ++----
tests/test-mbsstr1.c | 6 ++----
tests/test-mbsstr2.c | 6 ++----
tests/test-memmem.c | 12 ++++--------
tests/test-strcasestr.c | 6 ++----
tests/test-striconv.c | 3 +--
tests/test-striconveh.c | 6 ++----
tests/test-striconveha.c | 3 +--
tests/test-strstr.c | 6 ++----
19 files changed, 37 insertions(+), 59 deletions(-)
diff --git a/doc/posix-functions/free.texi b/doc/posix-functions/free.texi
index a407dc2..10d95cd 100644
--- a/doc/posix-functions/free.texi
+++ b/doc/posix-functions/free.texi
@@ -9,7 +9,10 @@ Gnulib module: free
Portability problems fixed by Gnulib:
@itemize
@item
-On old platforms, @code{free (NULL)} is not allowed.
+On old platforms such as SunOS4, @code{free (NULL)} fails.
+However, since all such systems are so old as to no longer
+be considered ``reasonable portability targets,''
+this module is no longer useful.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/lib/gc-gnulib.c b/lib/gc-gnulib.c
index 94e0880..d535d03 100644
--- a/lib/gc-gnulib.c
+++ b/lib/gc-gnulib.c
@@ -546,8 +546,7 @@ gc_cipher_close (gc_cipher_handle handle)
{
_gc_cipher_ctx *ctx = handle;
- if (ctx)
- free (ctx);
+ free (ctx);
return GC_OK;
}
diff --git a/lib/getaddrinfo.c b/lib/getaddrinfo.c
index aa07903..c7a1ea9 100644
--- a/lib/getaddrinfo.c
+++ b/lib/getaddrinfo.c
@@ -326,7 +326,7 @@ freeaddrinfo (struct addrinfo *ai)
cur = ai;
ai = ai->ai_next;
- if (cur->ai_canonname) free (cur->ai_canonname);
+ free (cur->ai_canonname);
free (cur);
}
}
diff --git a/lib/putenv.c b/lib/putenv.c
index 351b403..d0573c6 100644
--- a/lib/putenv.c
+++ b/lib/putenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1997, 1998, 2000, 2003, 2004, 2005, 2006, 2007
+/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2008
Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C
@@ -122,8 +122,7 @@ putenv (char *string)
size * sizeof (char *));
new_environ[size] = (char *) string;
new_environ[size + 1] = NULL;
- if (last_environ != NULL)
- free (last_environ);
+ free (last_environ);
last_environ = new_environ;
environ = new_environ;
}
diff --git a/lib/save-cwd.c b/lib/save-cwd.c
index 7618f09..e158e8b 100644
--- a/lib/save-cwd.c
+++ b/lib/save-cwd.c
@@ -97,6 +97,5 @@ free_cwd (struct saved_cwd *cwd)
{
if (cwd->desc >= 0)
close (cwd->desc);
- if (cwd->name)
- free (cwd->name);
+ free (cwd->name);
}
diff --git a/modules/free b/modules/free
index 94b6a3a..7e4f18f 100644
--- a/modules/free
+++ b/modules/free
@@ -1,5 +1,9 @@
Description:
Work around incompatibility on older systems where free (NULL) fails.
+# Note: as of 2008, this module is no longer useful, since no
+# "reasonable portability target" (which excludes SunOS4) system
+# requires the wrapper.
+# FIXME: mark as obsolescent
Files:
lib/free.c
@@ -20,4 +24,3 @@ GPL
Maintainer:
Paul Eggert
-
diff --git a/modules/readutmp b/modules/readutmp
index fd813be..4a778b8 100644
--- a/modules/readutmp
+++ b/modules/readutmp
@@ -9,7 +9,6 @@ m4/readutmp.m4
Depends-on:
extensions
xalloc
-free
stdbool
configure.ac:
diff --git a/tests/test-c-strcasestr.c b/tests/test-c-strcasestr.c
index 012571d..b511654 100644
--- a/tests/test-c-strcasestr.c
+++ b/tests/test-c-strcasestr.c
@@ -136,10 +136,8 @@ main ()
result = c_strcasestr (haystack, needle);
ASSERT (result == haystack + m);
}
- if (needle != NULL)
- free (needle);
- if (haystack != NULL)
- free (haystack);
+ free (needle);
+ free (haystack);
}
return 0;
diff --git a/tests/test-c-strstr.c b/tests/test-c-strstr.c
index 75b8d5d..a8682cb 100644
--- a/tests/test-c-strstr.c
+++ b/tests/test-c-strstr.c
@@ -129,10 +129,8 @@ main ()
result = c_strstr (haystack, needle);
ASSERT (result == haystack + m);
}
- if (needle != NULL)
- free (needle);
- if (haystack != NULL)
- free (haystack);
+ free (needle);
+ free (haystack);
}
return 0;
diff --git a/tests/test-mbscasestr1.c b/tests/test-mbscasestr1.c
index c8b18bb..27abd11 100644
--- a/tests/test-mbscasestr1.c
+++ b/tests/test-mbscasestr1.c
@@ -131,10 +131,8 @@ main ()
result = mbscasestr (haystack, needle);
ASSERT (result == haystack + m);
}
- if (needle != NULL)
- free (needle);
- if (haystack != NULL)
- free (haystack);
+ free (needle);
+ free (haystack);
}
return 0;
diff --git a/tests/test-mbscasestr2.c b/tests/test-mbscasestr2.c
index 1b9f184..a4d0848 100644
--- a/tests/test-mbscasestr2.c
+++ b/tests/test-mbscasestr2.c
@@ -143,10 +143,8 @@ main ()
result = mbscasestr (haystack, needle);
ASSERT (result == haystack + m);
}
- if (needle != NULL)
- free (needle);
- if (haystack != NULL)
- free (haystack);
+ free (needle);
+ free (haystack);
}
return 0;
diff --git a/tests/test-mbsstr1.c b/tests/test-mbsstr1.c
index f2b1e1d..ff20485 100644
--- a/tests/test-mbsstr1.c
+++ b/tests/test-mbsstr1.c
@@ -130,10 +130,8 @@ main ()
result = mbsstr (haystack, needle);
ASSERT (result == haystack + m);
}
- if (needle != NULL)
- free (needle);
- if (haystack != NULL)
- free (haystack);
+ free (needle);
+ free (haystack);
}
return 0;
diff --git a/tests/test-mbsstr2.c b/tests/test-mbsstr2.c
index d8699ca..014afed 100644
--- a/tests/test-mbsstr2.c
+++ b/tests/test-mbsstr2.c
@@ -143,10 +143,8 @@ main ()
result = mbsstr (haystack, needle);
ASSERT (result == haystack + m);
}
- if (needle != NULL)
- free (needle);
- if (haystack != NULL)
- free (haystack);
+ free (needle);
+ free (haystack);
}
return 0;
diff --git a/tests/test-memmem.c b/tests/test-memmem.c
index 58043cd..656f3bb 100644
--- a/tests/test-memmem.c
+++ b/tests/test-memmem.c
@@ -152,10 +152,8 @@ main (int argc, char *argv[])
result = memmem (haystack, 2 * m + 1, needle, m + 1);
ASSERT (result == haystack + m);
}
- if (needle != NULL)
- free (needle);
- if (haystack != NULL)
- free (haystack);
+ free (needle);
+ free (haystack);
}
/* Check that long needles not present in a haystack can be handled
@@ -179,10 +177,8 @@ main (int argc, char *argv[])
ASSERT (result == NULL);
}
}
- if (haystack != NULL)
- free (haystack);
- if (needle != NULL)
- free (needle);
+ free (haystack);
+ free (needle);
}
return 0;
diff --git a/tests/test-strcasestr.c b/tests/test-strcasestr.c
index 9db62f1..a674719 100644
--- a/tests/test-strcasestr.c
+++ b/tests/test-strcasestr.c
@@ -144,10 +144,8 @@ main ()
result = strcasestr (haystack, needle);
ASSERT (result == haystack + m);
}
- if (needle != NULL)
- free (needle);
- if (haystack != NULL)
- free (haystack);
+ free (needle);
+ free (haystack);
}
return 0;
diff --git a/tests/test-striconv.c b/tests/test-striconv.c
index 5c97c4a..b1252b0 100644
--- a/tests/test-striconv.c
+++ b/tests/test-striconv.c
@@ -102,8 +102,7 @@ main ()
&result, &length);
ASSERT (retval == 0);
ASSERT (length == 0);
- if (result != NULL)
- free (result);
+ free (result);
}
/* ------------------------- Test str_cd_iconv() ------------------------- */
diff --git a/tests/test-striconveh.c b/tests/test-striconveh.c
index 72e31b9..459b0f1 100644
--- a/tests/test-striconveh.c
+++ b/tests/test-striconveh.c
@@ -330,8 +330,7 @@ main ()
ASSERT (offsets[1] == MAGIC);
free (offsets);
}
- if (result != NULL)
- free (result);
+ free (result);
}
}
@@ -719,8 +718,7 @@ main ()
ASSERT (offsets[1] == MAGIC);
free (offsets);
}
- if (result != NULL)
- free (result);
+ free (result);
}
}
diff --git a/tests/test-striconveha.c b/tests/test-striconveha.c
index 488eec0..8c87663 100644
--- a/tests/test-striconveha.c
+++ b/tests/test-striconveha.c
@@ -313,8 +313,7 @@ main ()
ASSERT (offsets[1] == MAGIC);
free (offsets);
}
- if (result != NULL)
- free (result);
+ free (result);
}
}
diff --git a/tests/test-strstr.c b/tests/test-strstr.c
index b03fcf9..be75a66 100644
--- a/tests/test-strstr.c
+++ b/tests/test-strstr.c
@@ -142,10 +142,8 @@ main (int argc, char *argv[])
result = strstr (haystack, needle);
ASSERT (result == haystack + m);
}
- if (needle != NULL)
- free (needle);
- if (haystack != NULL)
- free (haystack);
+ free (needle);
+ free (haystack);
}
/* Sublinear speed is only possible in memmem; strstr must examine
--
1.5.4.3.341.g956c8c
- [PATCH] Remove useless "if" tests before free. Deprecate "free" module.,
Jim Meyering <=