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>
brian m. carlson committed
Feb 19, 2019 at 00:04 UTC
5a8643eff1e59f1cf96da9875d5716e88f480710
2 files changed
+18
-12
khash.h
+18
@@ -332,4 +332,22 @@ typedef kh_sha1_t khash_sha1;
332
KHASH_INIT(sha1_pos, const unsigned char *, int, 1, sha1hash, __kh_oid_cmp)
333
typedef kh_sha1_pos_t khash_sha1_pos;
334
335
+static inline unsigned int oid_hash(struct object_id oid)
336
+{
337
+ return sha1hash(oid.hash);
338
+}
339
+
340
+static inline int oid_equal(struct object_id a, struct object_id b)
341
+{
342
+ return oideq(&a, &b);
343
+}
344
+
345
+KHASH_INIT(oid, struct object_id, int, 0, oid_hash, oid_equal)
346
+
347
+KHASH_INIT(oid_map, struct object_id, void *, 1, oid_hash, oid_equal)
348
+typedef kh_oid_t khash_oid_map;
349
+
350
+KHASH_INIT(oid_pos, struct object_id, int, 1, oid_hash, oid_equal)
351
+typedef kh_oid_pos_t khash_oid_pos;
352
+
353
#endif /* __AC_KHASH_H */
oidset.h
-12
@@ -16,18 +16,6 @@
16
* table overhead.
17
*/
18
19
-static inline unsigned int oid_hash(struct object_id oid)
20
-{
21
- return sha1hash(oid.hash);
22
-}
23
-
24
-static inline int oid_equal(struct object_id a, struct object_id b)
25
-{
26
- return oideq(&a, &b);
27
-}
28
-
29
-KHASH_INIT(oid, struct object_id, int, 0, oid_hash, oid_equal)
30
-
19
/**
20
* A single oidset; should be zero-initialized (or use OIDSET_INIT).
21
*/