mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-05 15:33:51 +00:00
khash: avoid using kh_end
directly
This commit is contained in:
parent
036daa59e9
commit
64e46dc3b5
@ -125,7 +125,7 @@ static void cache_evict_entries(git_cache *cache)
|
|||||||
}
|
}
|
||||||
|
|
||||||
while (evict_count > 0) {
|
while (evict_count > 0) {
|
||||||
khiter_t pos = seed++ % kh_end(cache->map);
|
khiter_t pos = seed++ % git_oidmap_end(cache->map);
|
||||||
|
|
||||||
if (kh_exist(cache->map, pos)) {
|
if (kh_exist(cache->map, pos)) {
|
||||||
git_cached_obj *evict = kh_val(cache->map, pos);
|
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)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
pos = kh_get(oid, cache->map, oid);
|
pos = kh_get(oid, cache->map, oid);
|
||||||
if (pos != kh_end(cache->map)) {
|
if (git_oidmap_valid_index(cache->map, pos)) {
|
||||||
entry = kh_val(cache->map, pos);
|
entry = kh_val(cache->map, pos);
|
||||||
|
|
||||||
if (flags && entry->flags != flags) {
|
if (flags && entry->flags != flags) {
|
||||||
@ -196,7 +196,7 @@ static void *cache_store(git_cache *cache, git_cached_obj *entry)
|
|||||||
pos = kh_get(oid, cache->map, &entry->oid);
|
pos = kh_get(oid, cache->map, &entry->oid);
|
||||||
|
|
||||||
/* not found */
|
/* not found */
|
||||||
if (pos == kh_end(cache->map)) {
|
if (!git_oidmap_valid_index(cache->map, pos)) {
|
||||||
int rval;
|
int rval;
|
||||||
|
|
||||||
pos = kh_put(oid, cache->map, &entry->oid, &rval);
|
pos = kh_put(oid, cache->map, &entry->oid, &rval);
|
||||||
|
@ -83,7 +83,7 @@ static int impl__read(void **buffer_p, size_t *len_p, git_otype *type_p, git_odb
|
|||||||
khiter_t pos;
|
khiter_t pos;
|
||||||
|
|
||||||
pos = kh_get(oid, db->objects, oid);
|
pos = kh_get(oid, db->objects, oid);
|
||||||
if (pos == kh_end(db->objects))
|
if (!git_oidmap_valid_index(db->objects, pos))
|
||||||
return GIT_ENOTFOUND;
|
return GIT_ENOTFOUND;
|
||||||
|
|
||||||
obj = kh_val(db->objects, pos);
|
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 *
|
|||||||
khiter_t pos;
|
khiter_t pos;
|
||||||
|
|
||||||
pos = kh_get(oid, db->objects, oid);
|
pos = kh_get(oid, db->objects, oid);
|
||||||
if (pos == kh_end(db->objects))
|
if (!git_oidmap_valid_index(db->objects, pos))
|
||||||
return GIT_ENOTFOUND;
|
return GIT_ENOTFOUND;
|
||||||
|
|
||||||
obj = kh_val(db->objects, pos);
|
obj = kh_val(db->objects, pos);
|
||||||
|
@ -49,6 +49,9 @@ GIT_INLINE(khint_t) git_oidmap_hash(const git_oid *oid)
|
|||||||
|
|
||||||
#define git_oidmap_foreach_value kh_foreach_value
|
#define git_oidmap_foreach_value kh_foreach_value
|
||||||
|
|
||||||
|
#define git_oidmap_begin kh_begin
|
||||||
|
#define git_oidmap_end kh_end
|
||||||
|
|
||||||
#define git_oidmap_size(h) kh_size(h)
|
#define git_oidmap_size(h) kh_size(h)
|
||||||
|
|
||||||
#define git_oidmap_clear(h) kh_clear(oid, h)
|
#define git_oidmap_clear(h) kh_clear(oid, h)
|
||||||
|
@ -517,7 +517,7 @@ static int cb_tag_foreach(const char *name, git_oid *oid, void *data)
|
|||||||
GIT_UNUSED(name);
|
GIT_UNUSED(name);
|
||||||
|
|
||||||
pos = kh_get(oid, pb->object_ix, oid);
|
pos = kh_get(oid, pb->object_ix, oid);
|
||||||
if (pos == kh_end(pb->object_ix))
|
if (!git_oidmap_valid_index(pb->object_ix, pos))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
po = kh_value(pb->object_ix, pos);
|
po = kh_value(pb->object_ix, pos);
|
||||||
|
@ -118,7 +118,7 @@ static git_pack_cache_entry *cache_get(git_pack_cache *cache, git_off_t offset)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
k = kh_get(off, cache->entries, offset);
|
k = kh_get(off, cache->entries, offset);
|
||||||
if (k != kh_end(cache->entries)) { /* found it */
|
if (git_offmap_valid_index(cache->entries, k)) { /* found it */
|
||||||
entry = kh_value(cache->entries, k);
|
entry = kh_value(cache->entries, k);
|
||||||
git_atomic_inc(&entry->refcount);
|
git_atomic_inc(&entry->refcount);
|
||||||
entry->last_usage = cache->use_ctr++;
|
entry->last_usage = cache->use_ctr++;
|
||||||
@ -957,7 +957,7 @@ git_off_t get_delta_base(
|
|||||||
|
|
||||||
git_oid_fromraw(&oid, base_info);
|
git_oid_fromraw(&oid, base_info);
|
||||||
k = kh_get(oid, p->idx_cache, &oid);
|
k = kh_get(oid, p->idx_cache, &oid);
|
||||||
if (k != kh_end(p->idx_cache)) {
|
if (git_oidmap_valid_index(p->idx_cache, k)) {
|
||||||
*curpos += 20;
|
*curpos += 20;
|
||||||
return ((struct git_pack_entry *)kh_value(p->idx_cache, k))->offset;
|
return ((struct git_pack_entry *)kh_value(p->idx_cache, k))->offset;
|
||||||
} else {
|
} else {
|
||||||
|
@ -26,7 +26,7 @@ git_commit_list_node *git_revwalk__commit_lookup(
|
|||||||
|
|
||||||
/* lookup and reserve space if not already present */
|
/* lookup and reserve space if not already present */
|
||||||
pos = kh_get(oid, walk->commits, oid);
|
pos = kh_get(oid, walk->commits, oid);
|
||||||
if (pos != kh_end(walk->commits))
|
if (git_oidmap_valid_index(walk->commits, pos))
|
||||||
return kh_value(walk->commits, pos);
|
return kh_value(walk->commits, pos);
|
||||||
|
|
||||||
commit = git_commit_list_alloc_node(walk);
|
commit = git_commit_list_alloc_node(walk);
|
||||||
|
@ -34,7 +34,7 @@ void test_core_oidmap__basic(void)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
pos = kh_get(oid, map, &items[i].oid);
|
pos = kh_get(oid, map, &items[i].oid);
|
||||||
cl_assert(pos == kh_end(map));
|
cl_assert(!git_oidmap_valid_index(map, pos));
|
||||||
|
|
||||||
pos = kh_put(oid, map, &items[i].oid, &ret);
|
pos = kh_put(oid, map, &items[i].oid, &ret);
|
||||||
cl_assert(ret != 0);
|
cl_assert(ret != 0);
|
||||||
@ -47,7 +47,7 @@ void test_core_oidmap__basic(void)
|
|||||||
khiter_t pos;
|
khiter_t pos;
|
||||||
|
|
||||||
pos = kh_get(oid, map, &items[i].oid);
|
pos = kh_get(oid, map, &items[i].oid);
|
||||||
cl_assert(pos != kh_end(map));
|
cl_assert(git_oidmap_valid_index(map, pos));
|
||||||
|
|
||||||
cl_assert_equal_p(kh_val(map, pos), &items[i]);
|
cl_assert_equal_p(kh_val(map, pos), &items[i]);
|
||||||
}
|
}
|
||||||
@ -88,7 +88,7 @@ void test_core_oidmap__hash_collision(void)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
pos = kh_get(oid, map, &items[i].oid);
|
pos = kh_get(oid, map, &items[i].oid);
|
||||||
cl_assert(pos == kh_end(map));
|
cl_assert(!git_oidmap_valid_index(map, pos));
|
||||||
|
|
||||||
pos = kh_put(oid, map, &items[i].oid, &ret);
|
pos = kh_put(oid, map, &items[i].oid, &ret);
|
||||||
cl_assert(ret != 0);
|
cl_assert(ret != 0);
|
||||||
@ -101,7 +101,7 @@ void test_core_oidmap__hash_collision(void)
|
|||||||
khiter_t pos;
|
khiter_t pos;
|
||||||
|
|
||||||
pos = kh_get(oid, map, &items[i].oid);
|
pos = kh_get(oid, map, &items[i].oid);
|
||||||
cl_assert(pos != kh_end(map));
|
cl_assert(git_oidmap_valid_index(map, pos));
|
||||||
|
|
||||||
cl_assert_equal_p(kh_val(map, pos), &items[i]);
|
cl_assert_equal_p(kh_val(map, pos), &items[i]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user