From: Linus Torvalds Date: Sun, 24 Apr 2005 21:17:13 +0000 (-0700) Subject: Set object type at object creation time, not object parse time. X-Git-Tag: v0.99~757 X-Git-Url: https://git.octo.it/?p=git.git;a=commitdiff_plain;h=d32987be618181db1f435a5c0a1bea85e90c7c7d Set object type at object creation time, not object parse time. Otherwise we can have objects without a type, which is not good. --- diff --git a/commit.c b/commit.c index 25026882..c0dd689e 100644 --- a/commit.c +++ b/commit.c @@ -12,6 +12,7 @@ struct commit *lookup_commit(unsigned char *sha1) struct commit *ret = malloc(sizeof(struct commit)); memset(ret, 0, sizeof(struct commit)); created_object(sha1, &ret->object); + ret->object.type = commit_type; return ret; } if (obj->parsed && obj->type != commit_type) { @@ -56,7 +57,6 @@ int parse_commit(struct commit *item) if (strcmp(type, commit_type)) return error("Object %s not a commit", sha1_to_hex(item->object.sha1)); - item->object.type = commit_type; get_sha1_hex(bufptr + 5, parent); item->tree = lookup_tree(parent); add_ref(&item->object, &item->tree->object); diff --git a/tree.c b/tree.c index 79b96258..23476da7 100644 --- a/tree.c +++ b/tree.c @@ -77,6 +77,7 @@ struct tree *lookup_tree(unsigned char *sha1) struct tree *ret = malloc(sizeof(struct tree)); memset(ret, 0, sizeof(struct tree)); created_object(sha1, &ret->object); + ret->object.type = tree_type; return ret; } if (obj->parsed && obj->type != tree_type) { @@ -96,7 +97,6 @@ int parse_tree(struct tree *item) if (item->object.parsed) return 0; item->object.parsed = 1; - item->object.type = tree_type; buffer = bufptr = read_sha1_file(item->object.sha1, type, &size); if (!buffer) return error("Could not read %s",