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>
This commit is contained in:

committed by
Junio C Hamano

parent
6f92e5ff3c
commit
039dc71a7c
11
hashmap.h
11
hashmap.h
@ -13,6 +13,17 @@ extern unsigned int strihash(const char *buf);
|
||||
extern unsigned int memhash(const void *buf, size_t len);
|
||||
extern unsigned int memihash(const void *buf, size_t len);
|
||||
|
||||
static inline unsigned int sha1hash(const unsigned char *sha1)
|
||||
{
|
||||
/*
|
||||
* Equivalent to 'return *(unsigned int *)sha1;', but safe on
|
||||
* platforms that don't support unaligned reads.
|
||||
*/
|
||||
unsigned int hash;
|
||||
memcpy(&hash, sha1, sizeof(hash));
|
||||
return hash;
|
||||
}
|
||||
|
||||
/* data structures */
|
||||
|
||||
struct hashmap_entry {
|
||||
|
Reference in New Issue
Block a user