summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-24 14:17:13 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-24 14:17:13 -0700
commitd32987be618181db1f435a5c0a1bea85e90c7c7d (patch)
tree000a0382e736b024de1581ca3781b561a2ab1942
parent4728b861ace127dc39c648f3bea64c3b86bbabc5 (diff)
downloadgit-d32987be618181db1f435a5c0a1bea85e90c7c7d.tar.gz
Set object type at object creation time, not object parse time.
Otherwise we can have objects without a type, which is not good.
-rw-r--r--commit.c2
-rw-r--r--tree.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/commit.c b/commit.c
index 2502688262..c0dd689ea3 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 79b9625855..23476da7de 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",