Re: [PATCH 15/17] khash: rename oid helper functions
- From
Jeff King <peff@peff.net>
- Date
- Jun 20, 2019, 18:27 UTC
- Message-ID
- <20190620182743.GC18704@sigill.intra.peff.net>
- In-Reply-To
- <xmqqwohgnocu.fsf@gitster-ct.c.googlers.com>
On Thu, Jun 20, 2019 at 10:44:17AM -0700, Junio C Hamano wrote:
Show 18 quoted lines
> Jeff King <peff@peff.net> writes: > > > For use in object_id hash tables, we have oid_hash() and oid_equal(). > > But these are confusingly similar to the existing oideq() and the > > oidhash() we plan to add to replace sha1hash(). > > > > The big difference from those functions is that rather than accepting a > > const pointer to the "struct object_id", we take the arguments by value > > (which is a khash internal convention). So let's make that obvious by > > calling them oidhash_by_value() and oideq_by_value(). > > > > Those names are fairly horrendous to type, but we rarely need to do so; > > they are passed to the khash implementation macro and then only used > > internally. Callers get to use the nice kh_put_oid_map(), etc. > > The pass-by-value interface feels a bit unforunate but hopefully > "static inline" would help us avoid actually copying the struct left > and right as we make calls to them X-<.
Yeah, exactly. I think it should end up quite fast, though if anybody (René?) wants to try tweaking khash and timing it, be my guest.
I do think if it took the more usual pass-by-const-pointer we'd probably still end up with the exact same code from an optimizing compiler, since all of the references and dereferences would cancel out once it was inlined.
-Peff