зеркало из https://github.com/microsoft/git.git
plug a few leaks in revision walking used in describe.
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
80dbae03b0
Коммит
94d23673e3
|
@ -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));
|
||||
|
|
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче