I didn't know about the coccinelle semantic patch facility. This adds coccinelle rules to do the code changes, and adds subsequent follow-up commits which apply that change, with the series ending with a patch that I manually authored. This fixes a bug in earlier versions of the series. I was mistakenly freeing the wrong thing in the tree-walk.c change, that change is now gone, and all the changes not made by coccinelle are in one commit, making it easier to review. Ævar Arnfjörð Bjarmason (6): git-compat-util: add a FREE_AND_NULL() wrapper around free(ptr); ptr = NULL coccinelle: add a rule to make "type" code use FREE_AND_NULL() coccinelle: make use of the "type" FREE_AND_NULL() rule coccinelle: add a rule to make "expression" code use FREE_AND_NULL() coccinelle: make use of the "expression" FREE_AND_NULL() rule *.[ch] refactoring: make use of the FREE_AND_NULL() macro alias.c | 6 ++---- apply.c | 3 +-- attr.c | 6 ++---- blame.c | 3 +-- branch.c | 3 +-- builtin/am.c | 18 +++++------------- builtin/clean.c | 6 ++---- builtin/config.c | 6 ++---- builtin/index-pack.c | 6 ++---- builtin/pack-objects.c | 12 ++++-------- builtin/unpack-objects.c | 3 +-- builtin/worktree.c | 6 ++---- commit-slab.h | 3 +-- commit.c | 3 +-- config.c | 3 +-- contrib/coccinelle/free.cocci | 15 +++++++++++++++ credential.c | 9 +++------ diff-lib.c | 3 +-- diff.c | 6 ++---- diffcore-rename.c | 6 ++---- dir.c | 9 +++------ fast-import.c | 6 ++---- git-compat-util.h | 6 ++++++ gpg-interface.c | 15 +++++---------- grep.c | 12 ++++-------- help.c | 3 +-- http-push.c | 24 ++++++++---------------- http.c | 15 +++++---------- imap-send.c | 3 +-- line-log.c | 6 ++---- ll-merge.c | 3 +-- mailinfo.c | 3 +-- object.c | 3 +-- pathspec.c | 3 +-- prio-queue.c | 3 +-- read-cache.c | 6 ++---- ref-filter.c | 3 +-- refs/files-backend.c | 3 +-- refs/ref-cache.c | 3 +-- remote-testsvn.c | 3 +-- rerere.c | 3 +-- sequencer.c | 3 +-- sha1-array.c | 3 +-- sha1_file.c | 3 +-- split-index.c | 3 +-- transport-helper.c | 27 +++++++++------------------ transport.c | 3 +-- tree-diff.c | 6 ++---- tree.c | 3 +-- 49 files changed, 117 insertions(+), 195 deletions(-) -- 2.13.1.508.gb3defc5cc