Merge branch 'ab/plug-leak-in-revisions'
Plug the memory leaks from the trickiest API of all, the revision walker. * ab/plug-leak-in-revisions: (27 commits) revisions API: add a TODO for diff_free(&revs->diffopt) revisions API: have release_revisions() release "topo_walk_info" revisions API: have release_revisions() release "date_mode" revisions API: call diff_free(&revs->pruning) in revisions_release() revisions API: release "reflog_info" in release revisions() revisions API: clear "boundary_commits" in release_revisions() revisions API: have release_revisions() release "prune_data" revisions API: have release_revisions() release "grep_filter" revisions API: have release_revisions() release "filter" revisions API: have release_revisions() release "cmdline" revisions API: have release_revisions() release "mailmap" revisions API: have release_revisions() release "commits" revisions API users: use release_revisions() for "prune_data" users revisions API users: use release_revisions() with UNLEAK() revisions API users: use release_revisions() in builtin/log.c revisions API users: use release_revisions() in http-push.c revisions API users: add "goto cleanup" for release_revisions() stash: always have the owner of "stash_info" free it revisions API users: use release_revisions() needing REV_INFO_INIT revision.[ch]: document and move code declared around "init" ...
This commit is contained in:
@ -1100,7 +1100,6 @@ static const char *find_author_by_nickname(const char *name)
|
||||
struct rev_info revs;
|
||||
struct commit *commit;
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
struct string_list mailmap = STRING_LIST_INIT_NODUP;
|
||||
const char *av[20];
|
||||
int ac = 0;
|
||||
|
||||
@ -1111,7 +1110,8 @@ static const char *find_author_by_nickname(const char *name)
|
||||
av[++ac] = buf.buf;
|
||||
av[++ac] = NULL;
|
||||
setup_revisions(ac, av, &revs, NULL);
|
||||
revs.mailmap = &mailmap;
|
||||
revs.mailmap = xmalloc(sizeof(struct string_list));
|
||||
string_list_init_nodup(revs.mailmap);
|
||||
read_mailmap(revs.mailmap);
|
||||
|
||||
if (prepare_revision_walk(&revs))
|
||||
@ -1122,7 +1122,7 @@ static const char *find_author_by_nickname(const char *name)
|
||||
ctx.date_mode.type = DATE_NORMAL;
|
||||
strbuf_release(&buf);
|
||||
format_commit_message(commit, "%aN <%aE>", &buf, &ctx);
|
||||
clear_mailmap(&mailmap);
|
||||
release_revisions(&revs);
|
||||
return strbuf_detach(&buf, NULL);
|
||||
}
|
||||
die(_("--author '%s' is not 'Name <email>' and matches no existing author"), name);
|
||||
|
Reference in New Issue
Block a user