diff options
author | Nicolas Pitre <nico@cam.org> | 2007-02-26 22:56:00 +0300 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-02-27 12:34:21 +0300 |
commit | 0ab179504a17907c395a4009f7c23d2f71bba1d3 (patch) | |
tree | 0bdd9634b1bb7a5cb31c2f871259cf737f5c6278 | |
parent | 21666f1aae4e890d8f50924f9e80763b27e6a45d (diff) |
get rid of lookup_object_type()
This function is called only once in the whole source tree. Let's move
its code inline instead, which is also in the spirit of removing as much
object type char arrays as possible (not that this patch does anything for
that but at least it is now a local matter).
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | object.c | 18 | ||||
-rw-r--r-- | object.h | 3 | ||||
-rw-r--r-- | tag.c | 21 |
3 files changed, 18 insertions, 24 deletions
@@ -120,24 +120,6 @@ void created_object(const unsigned char *sha1, struct object *obj) nr_objs++; } -struct object *lookup_object_type(const unsigned char *sha1, const char *type) -{ - if (!type) { - return lookup_unknown_object(sha1); - } else if (!strcmp(type, blob_type)) { - return &lookup_blob(sha1)->object; - } else if (!strcmp(type, tree_type)) { - return &lookup_tree(sha1)->object; - } else if (!strcmp(type, commit_type)) { - return &lookup_commit(sha1)->object; - } else if (!strcmp(type, tag_type)) { - return &lookup_tag(sha1)->object; - } else { - error("Unknown type %s", type); - return NULL; - } -} - union any_object { struct object object; struct commit commit; @@ -47,9 +47,6 @@ extern struct object_refs *lookup_object_refs(struct object *); /** Internal only **/ struct object *lookup_object(const unsigned char *sha1); -/** Returns the object, having looked it up as being the given type. **/ -struct object *lookup_object_type(const unsigned char *sha1, const char *type); - void created_object(const unsigned char *sha1, struct object *obj); /** Returns the object, having parsed it to find out what it is. **/ @@ -1,5 +1,8 @@ #include "cache.h" #include "tag.h" +#include "commit.h" +#include "tree.h" +#include "blob.h" const char *tag_type = "tag"; @@ -37,7 +40,7 @@ struct tag *lookup_tag(const unsigned char *sha1) int parse_tag_buffer(struct tag *item, void *data, unsigned long size) { int typelen, taglen; - unsigned char object[20]; + unsigned char sha1[20]; const char *type_line, *tag_line, *sig_line; char type[20]; @@ -47,7 +50,7 @@ int parse_tag_buffer(struct tag *item, void *data, unsigned long size) if (size < 64) return -1; - if (memcmp("object ", data, 7) || get_sha1_hex((char *) data + 7, object)) + if (memcmp("object ", data, 7) || get_sha1_hex((char *) data + 7, sha1)) return -1; type_line = (char *) data + 48; @@ -73,7 +76,19 @@ int parse_tag_buffer(struct tag *item, void *data, unsigned long size) memcpy(item->tag, tag_line + 4, taglen); item->tag[taglen] = '\0'; - item->tagged = lookup_object_type(object, type); + if (!strcmp(type, blob_type)) { + item->tagged = &lookup_blob(sha1)->object; + } else if (!strcmp(type, tree_type)) { + item->tagged = &lookup_tree(sha1)->object; + } else if (!strcmp(type, commit_type)) { + item->tagged = &lookup_commit(sha1)->object; + } else if (!strcmp(type, tag_type)) { + item->tagged = &lookup_tag(sha1)->object; + } else { + error("Unknown type %s", type); + item->tagged = NULL; + } + if (item->tagged && track_object_refs) { struct object_refs *refs = alloc_object_refs(1); refs->ref[0] = item->tagged; |