get_merge_bases: clean up even when there is no common commit.
authorJunio C Hamano <junkio@cox.net>
Mon, 3 Jul 2006 10:02:27 +0000 (03:02 -0700)
committerJunio C Hamano <junkio@cox.net>
Mon, 3 Jul 2006 10:02:27 +0000 (03:02 -0700)
Actually in this case we would have traversed a lot of commits, so cleaning
things up is even more important.

Signed-off-by: Junio C Hamano <junkio@cox.net>
commit.c

index a608faf23217fadd42105d9eab96b28474930b69..12882fd496e5c18dacae76a6c68784700ce63721 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -1058,7 +1058,7 @@ struct commit_list *get_merge_bases(struct commit *rev1, struct commit *rev2,
        }
 
        if (!result)
-               return NULL;
+               goto finish;
 
        if (result->next && list)
                mark_reachable_commits(result, list);
@@ -1081,6 +1081,7 @@ struct commit_list *get_merge_bases(struct commit *rev1, struct commit *rev2,
                tmp = next;
        }
 
+ finish:
        if (cleanup) {
                clear_commit_marks(rev1, PARENT1 | PARENT2 | STALE);
                clear_commit_marks(rev2, PARENT1 | PARENT2 | STALE);