Browse Source

Merge branch 'jk/hashcmp-optim-for-2.19'

Partially revert the support for multiple hash functions to regain
hash comparison performance; we'd think of a way to do this better
in the next cycle.

* jk/hashcmp-optim-for-2.19:
  hashcmp: assert constant hash size
maint
Junio C Hamano 6 years ago
parent
commit
86ef236c98
  1. 10
      cache.h

10
cache.h

@ -1023,6 +1023,16 @@ extern const struct object_id null_oid;


static inline int hashcmp(const unsigned char *sha1, const unsigned char *sha2) static inline int hashcmp(const unsigned char *sha1, const unsigned char *sha2)
{ {
/*
* This is a temporary optimization hack. By asserting the size here,
* we let the compiler know that it's always going to be 20, which lets
* it turn this fixed-size memcmp into a few inline instructions.
*
* This will need to be extended or ripped out when we learn about
* hashes of different sizes.
*/
if (the_hash_algo->rawsz != 20)
BUG("hash size not yet supported by hashcmp");
return memcmp(sha1, sha2, the_hash_algo->rawsz); return memcmp(sha1, sha2, the_hash_algo->rawsz);
} }



Loading…
Cancel
Save