diff options
author | Junio C Hamano <junkio@cox.net> | 2007-01-10 22:36:16 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-01-11 18:05:53 -0800 |
commit | 94d23673e37160ee99ec1b1cd23ff3b7a79f7226 (patch) | |
tree | 9ee168381286822c91a11399afee819f16f7acda | |
parent | 80dbae03b010b1e5c6e0e4f475578d6cadaadecf (diff) | |
download | git-94d23673e37160ee99ec1b1cd23ff3b7a79f7226.tar.gz |
plug a few leaks in revision walking used in describe.
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | builtin-describe.c | 1 | ||||
-rw-r--r-- | revision.c | 8 |
2 files changed, 6 insertions, 3 deletions
diff --git a/builtin-describe.c b/builtin-describe.c index d65c7d286d..a8c98cea16 100644 --- a/builtin-describe.c +++ b/builtin-describe.c @@ -183,6 +183,7 @@ static void describe(const char *arg, int last_one) cur_match->depth++; if (!min_match || cur_match->depth < min_match->depth) min_match = cur_match; + free_commit_list(revs.commits); } printf("%s-g%s\n", min_match->name->path, find_unique_abbrev(cmit->object.sha1, abbrev)); diff --git a/revision.c b/revision.c index 1e3b29a429..f2ddd95e29 100644 --- a/revision.c +++ b/revision.c @@ -1121,21 +1121,23 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch void prepare_revision_walk(struct rev_info *revs) { int nr = revs->pending.nr; - struct object_array_entry *list = revs->pending.objects; + struct object_array_entry *e, *list; + e = list = revs->pending.objects; revs->pending.nr = 0; revs->pending.alloc = 0; revs->pending.objects = NULL; while (--nr >= 0) { - struct commit *commit = handle_commit(revs, list->item, list->name); + struct commit *commit = handle_commit(revs, e->item, e->name); if (commit) { if (!(commit->object.flags & SEEN)) { commit->object.flags |= SEEN; insert_by_date(commit, &revs->commits); } } - list++; + e++; } + free(list); if (revs->no_walk) return; |