X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=commit.c;h=56efc69f1f4bf1568eaa549bed16f7cc2cd669ba;hb=c2bdd6afe29589980e66855d574907240cb9c62a;hp=e867b86e6a10d64354226b04f71df98d7448e072;hpb=8fc66df237afce0b4318657f166b3583831949f3;p=git.git diff --git a/commit.c b/commit.c index e867b86e..56efc69f 100644 --- a/commit.c +++ b/commit.c @@ -1,6 +1,6 @@ +#include "cache.h" #include "tag.h" #include "commit.h" -#include "cache.h" int save_commit_buffer = 1; @@ -352,6 +352,19 @@ struct commit *pop_most_recent_commit(struct commit_list **list, return ret; } +void clear_commit_marks(struct commit *commit, unsigned int mark) +{ + struct commit_list *parents; + + parents = commit->parents; + commit->object.flags &= ~mark; + while (parents) { + if (parents->item && parents->item->object.parsed) + clear_commit_marks(parents->item, mark); + parents = parents->next; + } +} + /* * Generic support for pretty-printing the header */ @@ -560,6 +573,9 @@ void sort_in_topological_order(struct commit_list ** list) next = next->next; count++; } + + if (!count) + return; /* allocate an array to help sort the list */ nodes = xcalloc(count, sizeof(*nodes)); /* link the list to the array */