aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2016-10-08 16:14:57 +0200
committerJunio C Hamano <gitster@pobox.com>2016-10-10 11:37:41 -0700
commit39ea59a2570547166834ceeff9ae0c0c05748f35 (patch)
treeb9874de8e3ca7b71f3ca23dd8f0a92fe210b2ec0
parent353d84c537485500989b190c5af93ad224264e2c (diff)
downloadgit-39ea59a2570547166834ceeff9ae0c0c05748f35.tar.gz
git-39ea59a2570547166834ceeff9ae0c0c05748f35.tar.xz
remove unnecessary NULL check before free(3)
free(3) handles NULL pointers just fine. Add a semantic patch for removing unnecessary NULL checks before calling this function, and apply it on the code base. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--contrib/coccinelle/free.cocci5
-rw-r--r--parse-options-cb.c3
2 files changed, 6 insertions, 2 deletions
diff --git a/contrib/coccinelle/free.cocci b/contrib/coccinelle/free.cocci
new file mode 100644
index 000000000..e28213161
--- /dev/null
+++ b/contrib/coccinelle/free.cocci
@@ -0,0 +1,5 @@
+@@
+expression E;
+@@
+- if (E)
+ free(E);
diff --git a/parse-options-cb.c b/parse-options-cb.c
index 9667bc75a..16818830e 100644
--- a/parse-options-cb.c
+++ b/parse-options-cb.c
@@ -199,8 +199,7 @@ int parse_opt_passthru(const struct option *opt, const char *arg, int unset)
if (recreate_opt(&sb, opt, arg, unset) < 0)
return -1;
- if (*opt_value)
- free(*opt_value);
+ free(*opt_value);
*opt_value = strbuf_detach(&sb, NULL);