changeset 38301:d9e87566f879 stable

cext: stop worrying and love the free(NULL) There is no need to check for a NULL pointer before calling free since free(NULL) is defined by C standards as a no-op. Lots of software relies on this behavior so it is completely safe to call even on the most obscure of systems.
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Wed, 13 Jun 2018 10:37:39 -0400
parents 6cc5d01a58a6
children 6caca2a7d37f
files mercurial/cext/bdiff.c mercurial/cext/manifest.c mercurial/cext/revlog.c
diffstat 3 files changed, 6 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/cext/bdiff.c	Sun May 20 23:05:18 2018 -0400
+++ b/mercurial/cext/bdiff.c	Wed Jun 13 10:37:39 2018 -0400
@@ -155,12 +155,8 @@
 		PyEval_RestoreThread(_save);
 	PyBuffer_Release(&ba);
 	PyBuffer_Release(&bb);
-	if (al) {
-		free(al);
-	}
-	if (bl) {
-		free(bl);
-	}
+	free(al);
+	free(bl);
 	if (l.next) {
 		bdiff_freehunks(l.next);
 	}
--- a/mercurial/cext/manifest.c	Sun May 20 23:05:18 2018 -0400
+++ b/mercurial/cext/manifest.c	Wed Jun 13 10:37:39 2018 -0400
@@ -190,10 +190,8 @@
 			free(self->lines[i].start);
 		}
 	}
-	if (self->lines) {
-		free(self->lines);
-		self->lines = NULL;
-	}
+	free(self->lines);
+	self->lines = NULL;
 	if (self->pydata) {
 		Py_DECREF(self->pydata);
 		self->pydata = NULL;
--- a/mercurial/cext/revlog.c	Sun May 20 23:05:18 2018 -0400
+++ b/mercurial/cext/revlog.c	Wed Jun 13 10:37:39 2018 -0400
@@ -319,10 +319,8 @@
 		PyMem_Free(self->offsets);
 		self->offsets = NULL;
 	}
-	if (self->nt) {
-		free(self->nt);
-		self->nt = NULL;
-	}
+	free(self->nt);
+	self->nt = NULL;
 	Py_CLEAR(self->headrevs);
 }