Skip to content

Commit 64e46dc

Browse files
committed
khash: avoid using kh_end directly
1 parent 036daa5 commit 64e46dc

File tree

7 files changed

+16
-13
lines changed

7 files changed

+16
-13
lines changed

src/cache.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ static void cache_evict_entries(git_cache *cache)
125125
}
126126

127127
while (evict_count > 0) {
128-
khiter_t pos = seed++ % kh_end(cache->map);
128+
khiter_t pos = seed++ % git_oidmap_end(cache->map);
129129

130130
if (kh_exist(cache->map, pos)) {
131131
git_cached_obj *evict = kh_val(cache->map, pos);
@@ -157,7 +157,7 @@ static void *cache_get(git_cache *cache, const git_oid *oid, unsigned int flags)
157157
return NULL;
158158

159159
pos = kh_get(oid, cache->map, oid);
160-
if (pos != kh_end(cache->map)) {
160+
if (git_oidmap_valid_index(cache->map, pos)) {
161161
entry = kh_val(cache->map, pos);
162162

163163
if (flags && entry->flags != flags) {
@@ -196,7 +196,7 @@ static void *cache_store(git_cache *cache, git_cached_obj *entry)
196196
pos = kh_get(oid, cache->map, &entry->oid);
197197

198198
/* not found */
199-
if (pos == kh_end(cache->map)) {
199+
if (!git_oidmap_valid_index(cache->map, pos)) {
200200
int rval;
201201

202202
pos = kh_put(oid, cache->map, &entry->oid, &rval);

src/odb_mempack.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ static int impl__read(void **buffer_p, size_t *len_p, git_otype *type_p, git_odb
8383
khiter_t pos;
8484

8585
pos = kh_get(oid, db->objects, oid);
86-
if (pos == kh_end(db->objects))
86+
if (!git_oidmap_valid_index(db->objects, pos))
8787
return GIT_ENOTFOUND;
8888

8989
obj = kh_val(db->objects, pos);
@@ -104,7 +104,7 @@ static int impl__read_header(size_t *len_p, git_otype *type_p, git_odb_backend *
104104
khiter_t pos;
105105

106106
pos = kh_get(oid, db->objects, oid);
107-
if (pos == kh_end(db->objects))
107+
if (!git_oidmap_valid_index(db->objects, pos))
108108
return GIT_ENOTFOUND;
109109

110110
obj = kh_val(db->objects, pos);

src/oidmap.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ GIT_INLINE(khint_t) git_oidmap_hash(const git_oid *oid)
4949

5050
#define git_oidmap_foreach_value kh_foreach_value
5151

52+
#define git_oidmap_begin kh_begin
53+
#define git_oidmap_end kh_end
54+
5255
#define git_oidmap_size(h) kh_size(h)
5356

5457
#define git_oidmap_clear(h) kh_clear(oid, h)

src/pack-objects.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ static int cb_tag_foreach(const char *name, git_oid *oid, void *data)
517517
GIT_UNUSED(name);
518518

519519
pos = kh_get(oid, pb->object_ix, oid);
520-
if (pos == kh_end(pb->object_ix))
520+
if (!git_oidmap_valid_index(pb->object_ix, pos))
521521
return 0;
522522

523523
po = kh_value(pb->object_ix, pos);

src/pack.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ static git_pack_cache_entry *cache_get(git_pack_cache *cache, git_off_t offset)
118118
return NULL;
119119

120120
k = kh_get(off, cache->entries, offset);
121-
if (k != kh_end(cache->entries)) { /* found it */
121+
if (git_offmap_valid_index(cache->entries, k)) { /* found it */
122122
entry = kh_value(cache->entries, k);
123123
git_atomic_inc(&entry->refcount);
124124
entry->last_usage = cache->use_ctr++;
@@ -957,7 +957,7 @@ git_off_t get_delta_base(
957957

958958
git_oid_fromraw(&oid, base_info);
959959
k = kh_get(oid, p->idx_cache, &oid);
960-
if (k != kh_end(p->idx_cache)) {
960+
if (git_oidmap_valid_index(p->idx_cache, k)) {
961961
*curpos += 20;
962962
return ((struct git_pack_entry *)kh_value(p->idx_cache, k))->offset;
963963
} else {

src/revwalk.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ git_commit_list_node *git_revwalk__commit_lookup(
2626

2727
/* lookup and reserve space if not already present */
2828
pos = kh_get(oid, walk->commits, oid);
29-
if (pos != kh_end(walk->commits))
29+
if (git_oidmap_valid_index(walk->commits, pos))
3030
return kh_value(walk->commits, pos);
3131

3232
commit = git_commit_list_alloc_node(walk);

tests/core/oidmap.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ void test_core_oidmap__basic(void)
3434
int ret;
3535

3636
pos = kh_get(oid, map, &items[i].oid);
37-
cl_assert(pos == kh_end(map));
37+
cl_assert(!git_oidmap_valid_index(map, pos));
3838

3939
pos = kh_put(oid, map, &items[i].oid, &ret);
4040
cl_assert(ret != 0);
@@ -47,7 +47,7 @@ void test_core_oidmap__basic(void)
4747
khiter_t pos;
4848

4949
pos = kh_get(oid, map, &items[i].oid);
50-
cl_assert(pos != kh_end(map));
50+
cl_assert(git_oidmap_valid_index(map, pos));
5151

5252
cl_assert_equal_p(kh_val(map, pos), &items[i]);
5353
}
@@ -88,7 +88,7 @@ void test_core_oidmap__hash_collision(void)
8888
int ret;
8989

9090
pos = kh_get(oid, map, &items[i].oid);
91-
cl_assert(pos == kh_end(map));
91+
cl_assert(!git_oidmap_valid_index(map, pos));
9292

9393
pos = kh_put(oid, map, &items[i].oid, &ret);
9494
cl_assert(ret != 0);
@@ -101,7 +101,7 @@ void test_core_oidmap__hash_collision(void)
101101
khiter_t pos;
102102

103103
pos = kh_get(oid, map, &items[i].oid);
104-
cl_assert(pos != kh_end(map));
104+
cl_assert(git_oidmap_valid_index(map, pos));
105105

106106
cl_assert_equal_p(kh_val(map, pos), &items[i]);
107107
}

0 commit comments

Comments
 (0)