khash: move oid hash table definition
Move the oid khash table definition to khash.h and define a typedef for it, similar to the one we have for unsigned char pointers. Define variants that are maps as well. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
76c23892bc
commit
5a8643eff1
18
khash.h
18
khash.h
@ -332,4 +332,22 @@ typedef kh_sha1_t khash_sha1;
|
||||
KHASH_INIT(sha1_pos, const unsigned char *, int, 1, sha1hash, __kh_oid_cmp)
|
||||
typedef kh_sha1_pos_t khash_sha1_pos;
|
||||
|
||||
static inline unsigned int oid_hash(struct object_id oid)
|
||||
{
|
||||
return sha1hash(oid.hash);
|
||||
}
|
||||
|
||||
static inline int oid_equal(struct object_id a, struct object_id b)
|
||||
{
|
||||
return oideq(&a, &b);
|
||||
}
|
||||
|
||||
KHASH_INIT(oid, struct object_id, int, 0, oid_hash, oid_equal)
|
||||
|
||||
KHASH_INIT(oid_map, struct object_id, void *, 1, oid_hash, oid_equal)
|
||||
typedef kh_oid_t khash_oid_map;
|
||||
|
||||
KHASH_INIT(oid_pos, struct object_id, int, 1, oid_hash, oid_equal)
|
||||
typedef kh_oid_pos_t khash_oid_pos;
|
||||
|
||||
#endif /* __AC_KHASH_H */
|
||||
|
12
oidset.h
12
oidset.h
@ -16,18 +16,6 @@
|
||||
* table overhead.
|
||||
*/
|
||||
|
||||
static inline unsigned int oid_hash(struct object_id oid)
|
||||
{
|
||||
return sha1hash(oid.hash);
|
||||
}
|
||||
|
||||
static inline int oid_equal(struct object_id a, struct object_id b)
|
||||
{
|
||||
return oideq(&a, &b);
|
||||
}
|
||||
|
||||
KHASH_INIT(oid, struct object_id, int, 0, oid_hash, oid_equal)
|
||||
|
||||
/**
|
||||
* A single oidset; should be zero-initialized (or use OIDSET_INIT).
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user