# HG changeset patch
# User Josef 'Jeff' Sipek <jef...@josefsipek.net>
# Date 1528900659 14400
#      Wed Jun 13 10:37:39 2018 -0400
# Branch stable
# Node ID cbb47a946bc0e0346bfc9f9ba505f9475de43606
# Parent  3c84493556db3bffcff2fa2f24bb6738dde9fc58
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.

diff --git a/mercurial/cext/bdiff.c b/mercurial/cext/bdiff.c
--- a/mercurial/cext/bdiff.c
+++ b/mercurial/cext/bdiff.c
@@ -155,12 +155,8 @@ cleanup:
                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);
        }
diff --git a/mercurial/cext/manifest.c b/mercurial/cext/manifest.c
--- a/mercurial/cext/manifest.c
+++ b/mercurial/cext/manifest.c
@@ -190,10 +190,8 @@ static void lazymanifest_dealloc(lazyman
                        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;
diff --git a/mercurial/cext/revlog.c b/mercurial/cext/revlog.c
--- a/mercurial/cext/revlog.c
+++ b/mercurial/cext/revlog.c
@@ -319,10 +319,8 @@ static void _index_clearcaches(indexObje
                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);
 }
 

_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to