summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-04-26 23:55:25 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-04-26 23:55:25 (GMT)
commit5981e09999e90b389a02843671529a0faaf72143 (patch)
tree0334be8483eb8abe0b1e42664cd11ef16db055c4
parente23d0b4a4a55cc07e133905f0e9526b3550dd61b (diff)
downloadgit-5981e09999e90b389a02843671529a0faaf72143.zip
git-5981e09999e90b389a02843671529a0faaf72143.tar.gz
git-5981e09999e90b389a02843671529a0faaf72143.tar.bz2
commit-tree.c: check_valid() microoptimization.
There is no point reading the whole object just to make sure it exists and it is of the expected type. We added sha1_object_info() for such need after this code was written, so use it. Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--commit-tree.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/commit-tree.c b/commit-tree.c
index 2d86518..2595850 100644
--- a/commit-tree.c
+++ b/commit-tree.c
@@ -45,14 +45,13 @@ static void add_buffer(char **bufp, unsigned int *sizep, const char *fmt, ...)
static void check_valid(unsigned char *sha1, const char *expect)
{
- void *buf;
char type[20];
- unsigned long size;
- buf = read_sha1_file(sha1, type, &size);
- if (!buf || strcmp(type, expect))
- die("%s is not a valid '%s' object", sha1_to_hex(sha1), expect);
- free(buf);
+ if (sha1_object_info(sha1, type, NULL))
+ die("%s is not a valid object", sha1_to_hex(sha1));
+ if (expect && strcmp(type, expect))
+ die("%s is not a valid '%s' object", sha1_to_hex(sha1),
+ expect);
}
/*