From: Nguyễn Thái Ngọc Duy Date: Sat, 5 Feb 2011 14:03:02 +0000 (+0700) Subject: sha1_object_info: examine cached_object store too X-Git-Tag: v1.7.4.1~9 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=c4d9986f5f35c22010ed6dd58351b89fd4ee0def;hp=c597ba801048be45d168b1f6335e91bab165448f;p=git.git sha1_object_info: examine cached_object store too Cached object store was added in d66b37b (Add pretend_sha1_file() interface. - 2007-02-04) as a way to temporarily inject some objects to object store. But only read_sha1_file() knows about this store. While it will return an object from this store, sha1_object_info() will happily say "object not found". Teach sha1_object_info() about the cached store for consistency. Signed-off-by: Nguyễn Thái Ngọc Duy Signed-off-by: Junio C Hamano --- diff --git a/sha1_file.c b/sha1_file.c index 9fd7e166d..0b830c864 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -2020,9 +2020,17 @@ static int sha1_loose_object_info(const unsigned char *sha1, unsigned long *size int sha1_object_info(const unsigned char *sha1, unsigned long *sizep) { + struct cached_object *co; struct pack_entry e; int status; + co = find_cached_object(sha1); + if (co) { + if (sizep) + *sizep = co->size; + return co->type; + } + if (!find_pack_entry(sha1, &e)) { /* Most likely it's a loose object. */ status = sha1_loose_object_info(sha1, sizep);