This will allow us to unify the three hash functions into just one.
Signed-off-by: Dan McGee <redacted>
---
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