On Thu, Jun 20, 2019 at 09:32:49AM -0700, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > The find_commit_name() function passes an object_id.hash as the key of a > > hashmap. That ends up in commit_name_neq(), which then feeds it to > > oideq(). Which means we should actually be the whole "struct object_id". > > > > It works anyway because pointers to the two are interchangeable. And > > because we're going through a layer of void pointers, the compiler > > doesn't notice the type mismatch. > > Wow. Good eyes. I wouldn't have noticed this (and for the reasons > you stated, it is very tricky for any clever compiler to notice it). > > Impressed. It only looks impressive in retrospect. It became very obvious when updating the reference to sha1hash(peeled->hash) in the same line, and then scratching my head about why this one was looking at the hash member. But history rewriting lets me re-order it to make myself look good. Thanks, "rebase -i"! :) -Peff