Merge branch 'ma/reduce-heads-leakfix'
Leak fixes. * ma/reduce-heads-leakfix: reduce_heads: fix memory leaks builtin/merge-base: free commit lists
This commit is contained in:
@ -9,20 +9,20 @@
|
||||
|
||||
static int show_merge_base(struct commit **rev, int rev_nr, int show_all)
|
||||
{
|
||||
struct commit_list *result;
|
||||
struct commit_list *result, *r;
|
||||
|
||||
result = get_merge_bases_many_dirty(rev[0], rev_nr - 1, rev + 1);
|
||||
|
||||
if (!result)
|
||||
return 1;
|
||||
|
||||
while (result) {
|
||||
printf("%s\n", oid_to_hex(&result->item->object.oid));
|
||||
for (r = result; r; r = r->next) {
|
||||
printf("%s\n", oid_to_hex(&r->item->object.oid));
|
||||
if (!show_all)
|
||||
return 0;
|
||||
result = result->next;
|
||||
break;
|
||||
}
|
||||
|
||||
free_commit_list(result);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -51,45 +51,47 @@ static struct commit *get_commit_reference(const char *arg)
|
||||
|
||||
static int handle_independent(int count, const char **args)
|
||||
{
|
||||
struct commit_list *revs = NULL;
|
||||
struct commit_list *result;
|
||||
struct commit_list *revs = NULL, *rev;
|
||||
int i;
|
||||
|
||||
for (i = count - 1; i >= 0; i--)
|
||||
commit_list_insert(get_commit_reference(args[i]), &revs);
|
||||
|
||||
result = reduce_heads(revs);
|
||||
if (!result)
|
||||
reduce_heads_replace(&revs);
|
||||
|
||||
if (!revs)
|
||||
return 1;
|
||||
|
||||
while (result) {
|
||||
printf("%s\n", oid_to_hex(&result->item->object.oid));
|
||||
result = result->next;
|
||||
}
|
||||
for (rev = revs; rev; rev = rev->next)
|
||||
printf("%s\n", oid_to_hex(&rev->item->object.oid));
|
||||
|
||||
free_commit_list(revs);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int handle_octopus(int count, const char **args, int show_all)
|
||||
{
|
||||
struct commit_list *revs = NULL;
|
||||
struct commit_list *result;
|
||||
struct commit_list *result, *rev;
|
||||
int i;
|
||||
|
||||
for (i = count - 1; i >= 0; i--)
|
||||
commit_list_insert(get_commit_reference(args[i]), &revs);
|
||||
|
||||
result = reduce_heads(get_octopus_merge_bases(revs));
|
||||
result = get_octopus_merge_bases(revs);
|
||||
free_commit_list(revs);
|
||||
reduce_heads_replace(&result);
|
||||
|
||||
if (!result)
|
||||
return 1;
|
||||
|
||||
while (result) {
|
||||
printf("%s\n", oid_to_hex(&result->item->object.oid));
|
||||
for (rev = result; rev; rev = rev->next) {
|
||||
printf("%s\n", oid_to_hex(&rev->item->object.oid));
|
||||
if (!show_all)
|
||||
return 0;
|
||||
result = result->next;
|
||||
break;
|
||||
}
|
||||
|
||||
free_commit_list(result);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user