Expose a canonical one in object.c; convert the hashtable_index call and the calls in decorate.c. Signed-off-by: Dan McGee <dpmcgee@xxxxxxxxx> --- decorate.c | 7 ------- object.c | 11 ++--------- object.h | 1 + 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/decorate.c b/decorate.c index 3c08b96..4332924 100644 --- a/decorate.c +++ b/decorate.c @@ -6,13 +6,6 @@ #include "object.h" #include "decorate.h" -static unsigned int hash_chars(const unsigned char *c, unsigned int n) -{ - unsigned int hash; - memcpy(&hash, c, sizeof(unsigned int)); - return hash % n; -} - static void *insert_decoration(struct decoration *n, const struct object *base, void *decoration) { int size = n->size; diff --git a/object.c b/object.c index 09c4d3c..34f65e5 100644 --- a/object.c +++ b/object.c @@ -43,7 +43,7 @@ int type_from_string(const char *str) die("invalid object type \"%s\"", str); } -static unsigned int hash_chars(const unsigned char *c, unsigned int n) +unsigned int hash_chars(const unsigned char *c, unsigned int n) { unsigned int hash; memcpy(&hash, c, sizeof(unsigned int)); @@ -62,13 +62,6 @@ static void insert_obj_hash(struct object *obj, struct object **hash, unsigned i hash[j] = obj; } -static unsigned int hashtable_index(const unsigned char *sha1) -{ - unsigned int i; - memcpy(&i, sha1, sizeof(unsigned int)); - return i % obj_hash_size; -} - struct object *lookup_object(const unsigned char *sha1) { unsigned int i; @@ -77,7 +70,7 @@ struct object *lookup_object(const unsigned char *sha1) if (!obj_hash) return NULL; - i = hashtable_index(sha1); + i = hash_chars(sha1, obj_hash_size); while ((obj = obj_hash[i]) != NULL) { if (!hashcmp(sha1, obj->sha1)) break; diff --git a/object.h b/object.h index 89dd0c4..ed73a0a 100644 --- a/object.h +++ b/object.h @@ -37,6 +37,7 @@ struct object { extern const char *typename(unsigned int type); extern int type_from_string(const char *str); +extern unsigned int hash_chars(const unsigned char *c, unsigned int n); extern unsigned int get_max_object_index(void); extern struct object *get_indexed_object(unsigned int); -- 1.6.3.1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html