This will allow us to unify the three hash functions into just one. Signed-off-by: Dan McGee <dpmcgee@xxxxxxxxx> --- decorate.c | 9 ++++----- object.c | 6 +++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/decorate.c b/decorate.c index 2f8a63e..3c08b96 100644 --- a/decorate.c +++ b/decorate.c @@ -6,11 +6,10 @@ #include "object.h" #include "decorate.h" -static unsigned int hash_obj(const struct object *obj, unsigned int n) +static unsigned int hash_chars(const unsigned char *c, unsigned int n) { unsigned int hash; - - memcpy(&hash, obj->sha1, sizeof(unsigned int)); + memcpy(&hash, c, sizeof(unsigned int)); return hash % n; } @@ -18,7 +17,7 @@ static void *insert_decoration(struct decoration *n, const struct object *base, { int size = n->size; struct object_decoration *hash = n->hash; - unsigned int j = hash_obj(base, size); + unsigned int j = hash_chars(base->sha1, size); while (hash[j].base) { if (hash[j].base == base) { @@ -75,7 +74,7 @@ void *lookup_decoration(struct decoration *n, const struct object *obj) /* nothing to lookup */ if (!n->size) return NULL; - j = hash_obj(obj, n->size); + j = hash_chars(obj->sha1, n->size); for (;;) { struct object_decoration *ref = n->hash + j; if (ref->base == obj) diff --git a/object.c b/object.c index a6ef439..09c4d3c 100644 --- a/object.c +++ b/object.c @@ -43,16 +43,16 @@ int type_from_string(const char *str) die("invalid object type \"%s\"", str); } -static unsigned int hash_obj(struct object *obj, unsigned int n) +static unsigned int hash_chars(const unsigned char *c, unsigned int n) { unsigned int hash; - memcpy(&hash, obj->sha1, sizeof(unsigned int)); + memcpy(&hash, c, sizeof(unsigned int)); return hash % n; } static void insert_obj_hash(struct object *obj, struct object **hash, unsigned int size) { - unsigned int j = hash_obj(obj, size); + unsigned int j = hash_chars(obj->sha1, size); while (hash[j]) { j++; -- 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