]> granicus.if.org Git - git/commitdiff
repository: use FREE_AND_NULL
authorRené Scharfe <l.s.r@web.de>
Sun, 1 Oct 2017 14:44:46 +0000 (16:44 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 2 Oct 2017 04:15:59 +0000 (13:15 +0900)
Use the macro FREE_AND_NULL to release allocated objects and clear their
pointers.  This is shorter and documents the intent better by combining
the two related operations into one.

Patch generated with Coccinelle and contrib/coccinelle/free.cocci.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
repository.c

index 97c732bd48ca8776203ae0936fe8ee61bb330ad9..bb2fae5446b7ea8d2bfac87faa30c165f714d121 100644 (file)
@@ -200,25 +200,17 @@ out:
 
 void repo_clear(struct repository *repo)
 {
-       free(repo->gitdir);
-       repo->gitdir = NULL;
-       free(repo->commondir);
-       repo->commondir = NULL;
-       free(repo->objectdir);
-       repo->objectdir = NULL;
-       free(repo->graft_file);
-       repo->graft_file = NULL;
-       free(repo->index_file);
-       repo->index_file = NULL;
-       free(repo->worktree);
-       repo->worktree = NULL;
-       free(repo->submodule_prefix);
-       repo->submodule_prefix = NULL;
+       FREE_AND_NULL(repo->gitdir);
+       FREE_AND_NULL(repo->commondir);
+       FREE_AND_NULL(repo->objectdir);
+       FREE_AND_NULL(repo->graft_file);
+       FREE_AND_NULL(repo->index_file);
+       FREE_AND_NULL(repo->worktree);
+       FREE_AND_NULL(repo->submodule_prefix);
 
        if (repo->config) {
                git_configset_clear(repo->config);
-               free(repo->config);
-               repo->config = NULL;
+               FREE_AND_NULL(repo->config);
        }
 
        if (repo->submodule_cache) {
@@ -228,8 +220,7 @@ void repo_clear(struct repository *repo)
 
        if (repo->index) {
                discard_index(repo->index);
-               free(repo->index);
-               repo->index = NULL;
+               FREE_AND_NULL(repo->index);
        }
 }