diff options
| author | Junio C Hamano <gitster@pobox.com> | 2018-08-27 14:33:50 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2018-08-27 14:33:50 -0700 |
| commit | 86ef236c989285954384cccfd9cea847f034143c (patch) | |
| tree | c0145dccb1a86f00710ef12fb92002f660d27dba | |
| parent | Merge branch 'ab/test-must-be-empty-for-master' (diff) | |
| parent | hashcmp: assert constant hash size (diff) | |
| download | git-86ef236c989285954384cccfd9cea847f034143c.tar.gz git-86ef236c989285954384cccfd9cea847f034143c.zip | |
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
| -rw-r--r-- | cache.h | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -1023,6 +1023,16 @@ extern const struct object_id null_oid; 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); } |
