khash: rename oid helper functions

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.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2019-06-20 03:41:42 -04:00 committed by Junio C Hamano
parent 685d34a96e
commit e465e7c41d

10
khash.h
View File

@ -324,20 +324,20 @@ static const double __ac_HASH_UPPER = 0.77;
code; \
} }
static inline unsigned int oid_hash(struct object_id oid)
static inline unsigned int oidhash_by_value(struct object_id oid)
{
return sha1hash(oid.hash);
}
static inline int oid_equal(struct object_id a, struct object_id b)
static inline int oideq_by_value(struct object_id a, struct object_id b)
{
return oideq(&a, &b);
}
KHASH_INIT(oid_set, struct object_id, int, 0, oid_hash, oid_equal)
KHASH_INIT(oid_set, struct object_id, int, 0, oidhash_by_value, oideq_by_value)
KHASH_INIT(oid_map, struct object_id, void *, 1, oid_hash, oid_equal)
KHASH_INIT(oid_map, struct object_id, void *, 1, oidhash_by_value, oideq_by_value)
KHASH_INIT(oid_pos, struct object_id, int, 1, oid_hash, oid_equal)
KHASH_INIT(oid_pos, struct object_id, int, 1, oidhash_by_value, oideq_by_value)
#endif /* __AC_KHASH_H */