Thread (54 messages) flat view 54 messages, 11 authors, 2018-09-02

Re: [ANNOUNCE] Git v2.19.0-rc0

From: Jeff King <hidden>
Date: 2018-08-22 15:24:57

On Wed, Aug 22, 2018 at 10:28:56AM -0400, Derrick Stolee wrote:
quoted hunk ↗ jump to hunk
In my testing, I've had the best luck with this change:
diff --git a/cache.h b/cache.h
index b1fd3d58ab..6c8b51c390 100644
--- a/cache.h
+++ b/cache.h
@@ -1023,7 +1023,14 @@ extern const struct object_id null_oid;
 static inline int hashcmp(const unsigned char *sha1, const unsigned char
*sha2)
 {
-       return memcmp(sha1, sha2, the_hash_algo->rawsz);
+       switch (the_hash_algo->rawsz) {
+               case 20:
+                       return memcmp(sha1, sha2, 20);
+               case 32:
+                       return memcmp(sha1, sha2, 32);
+               default:
+                       assert(0);
+       }
 }

The fact that '20' and '32' are constants here may be helpful to the
compiler. Can someone else test the perf?
I tested that one last night (and just re-tested it now to be sure). It
seems to just generate two separate calls to memcmp, with no speed
improvement.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help