Browse Source

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>
maint
brian m. carlson 6 years ago committed by Junio C Hamano
parent
commit
5a8643eff1
  1. 18
      khash.h
  2. 12
      oidset.h

18
khash.h

@ -332,4 +332,22 @@ typedef kh_sha1_t khash_sha1; @@ -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

@ -16,18 +16,6 @@ @@ -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…
Cancel
Save