summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authorKarsten Blees <karsten.blees@gmail.com>2014-07-03 00:20:20 +0200
committerJunio C Hamano <gitster@pobox.com>2014-07-07 13:56:24 -0700
commit039dc71a7cb824300e242f8abc0fcb19dac93641 (patch)
tree9c38bb8655e0314cfe122b7355922c2413533825 /object.c
parent6f92e5ff3cdc813de8ef5327fd4bad492fb7d6c9 (diff)
downloadgit-039dc71a7cb824300e242f8abc0fcb19dac93641.tar.gz
hashmap: factor out getting a hash code from a SHA1
Copying the first bytes of a SHA1 is duplicated in six places, however, the implications (the actual value would depend on the endianness of the platform) is documented only once. Add a properly documented API for this. Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'object.c')
-rw-r--r--object.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/object.c b/object.c
index 9c31e9a5e0..91c7c867b9 100644
--- a/object.c
+++ b/object.c
@@ -50,18 +50,7 @@ int type_from_string(const char *str)
*/
static unsigned int hash_obj(const unsigned char *sha1, unsigned int n)
{
- unsigned int hash;
-
- /*
- * Since the sha1 is essentially random, we just take the
- * required number of bits directly from the first
- * sizeof(unsigned int) bytes of sha1. First we have to copy
- * the bytes into a properly aligned integer. If we cared
- * about getting consistent results across architectures, we
- * would have to call ntohl() here, too.
- */
- memcpy(&hash, sha1, sizeof(unsigned int));
- return hash & (n - 1);
+ return sha1hash(sha1) & (n - 1);
}
/*