提交 bd1e17e2 编写于 作者: L Linus Torvalds

Make "parse_object()" also fill in commit message buffer data.

And teach fsck to free it to save memory.
上级 a6f68d47
......@@ -14,7 +14,7 @@ struct commit {
unsigned long date;
struct commit_list *parents;
struct tree *tree;
const char *buffer;
char *buffer;
};
extern const char *commit_type;
......
......@@ -203,6 +203,8 @@ static int fsck_tree(struct tree *item)
static int fsck_commit(struct commit *commit)
{
free(commit->buffer);
commit->buffer = NULL;
if (!commit->tree)
return -1;
if (!commit->parents && show_root)
......
......@@ -129,6 +129,10 @@ struct object *parse_object(unsigned char *sha1)
} else if (!strcmp(type, "commit")) {
struct commit *commit = lookup_commit(sha1);
parse_commit_buffer(commit, buffer, size);
if (!commit->buffer) {
commit->buffer = buffer;
buffer = NULL;
}
obj = &commit->object;
} else if (!strcmp(type, "tag")) {
struct tag *tag = lookup_tag(sha1);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册