X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=commit.c;h=8f6b703c557599921d890c3b50b66eaa397de548;hb=2aaa84567e37f3c90087b56f9440a1608cac2282;hp=aa3b35b6a86891ac9d0628e20a6a46d506bf7700;hpb=00f39fc9955c22b6a8a2702b88509647e65291ce;p=git.git diff --git a/commit.c b/commit.c index aa3b35b6a..8f6b703c5 100644 --- a/commit.c +++ b/commit.c @@ -316,6 +316,26 @@ int parse_commit(struct commit *item) return ret; } +static void unparse_commit_list(struct commit_list *list) +{ + for (; list; list = list->next) + unparse_commit(list->item); +} + +void unparse_commit(struct commit *item) +{ + item->object.flags = 0; + item->object.used = 0; + if (item->object.parsed) { + item->object.parsed = 0; + if (item->parents) { + unparse_commit_list(item->parents); + free_commit_list(item->parents); + item->parents = NULL; + } + } +} + struct commit_list *commit_list_insert(struct commit *item, struct commit_list **list_p) { struct commit_list *new_list = xmalloc(sizeof(struct commit_list));