On Wed, Oct 26, 2011 at 12:44:15PM -0700, Junio C Hamano wrote: > > +static void mix_hash(unsigned char *h, unsigned n) > > +{ > > + unsigned char out[20]; > > + unsigned mid = n / 2; > > + > > + if (2*mid < n) > > + return; > > + > > + xor_bytes(out, h, h + mid, mid); > > + xor_bytes(out + mid, h + mid, h, mid); > > + memcpy(h, out, n); > > + > > + /* If a little bit of mixing is good, then a lot must be GREAT! */ > > + mix_hash(h, mid); > > + mix_hash(h + mid, mid); > > +} > > You seem to want to reduce the hash down to 5-bytes by duplicating the > same value on the left and right half, and duplicate that four times to > fill 20-byte buffer, but doesn't this look unnecessarily inefficient way > to achieve that? Well, yeah. But when you're writing a really bad hashing algorithm, I feel like obfuscating the bugs is key. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html