summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2017-01-25 14:32:23 +0100
committerPatrick Steinhardt <ps@pks.im>2017-02-17 11:41:06 +0100
commit71a54317efc465c0ccba8fd8d588d03087433048 (patch)
treef54d2131aaca7af6433d092ce38f7a4ce783b2c4
parentcb18386f72f07fc7316a0be892b98185d4aef7ce (diff)
downloadlibgit2-71a54317efc465c0ccba8fd8d588d03087433048.tar.gz
khash: avoid using `kh_key` directly
-rw-r--r--src/cache.c6
-rw-r--r--src/odb_mempack.c2
-rw-r--r--src/oidmap.h1
-rw-r--r--src/sortedcache.c2
4 files changed, 5 insertions, 6 deletions
diff --git a/src/cache.c b/src/cache.c
index c5f576a80..89c46ef7d 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -199,10 +199,8 @@ static void *cache_store(git_cache *cache, git_cached_obj *entry)
if (!git_oidmap_valid_index(cache->map, pos)) {
int rval;
- pos = kh_put(oid, cache->map, &entry->oid, &rval);
+ git_oidmap_insert(cache->map, &entry->oid, entry, rval);
if (rval >= 0) {
- kh_key(cache->map, pos) = &entry->oid;
- git_oidmap_value_at(cache->map, pos) = entry;
git_cached_obj_incref(entry);
cache->used_memory += entry->size;
git_atomic_ssize_add(&git_cache__current_storage, (ssize_t)entry->size);
@@ -221,7 +219,7 @@ static void *cache_store(git_cache *cache, git_cached_obj *entry)
git_cached_obj_decref(stored_entry);
git_cached_obj_incref(entry);
- kh_key(cache->map, pos) = &entry->oid;
+ git_oidmap_key(cache->map, pos) = &entry->oid;
git_oidmap_value_at(cache->map, pos) = entry;
} else {
/* NO OP */
diff --git a/src/odb_mempack.c b/src/odb_mempack.c
index 1b8987ef8..3165710b5 100644
--- a/src/odb_mempack.c
+++ b/src/odb_mempack.c
@@ -57,7 +57,7 @@ static int impl__write(git_odb_backend *_backend, const git_oid *oid, const void
obj->len = len;
obj->type = type;
- kh_key(db->objects, pos) = &obj->oid;
+ git_oidmap_key(db->objects, pos) = &obj->oid;
git_oidmap_value_at(db->objects, pos) = obj;
if (type == GIT_OBJ_COMMIT) {
diff --git a/src/oidmap.h b/src/oidmap.h
index 6afc8c916..4fab99ae0 100644
--- a/src/oidmap.h
+++ b/src/oidmap.h
@@ -39,6 +39,7 @@ GIT_INLINE(khint_t) git_oidmap_hash(const git_oid *oid)
#define git_oidmap_exists(h, k) (kh_get(oid, h, k) != kh_end(h))
#define git_oidmap_has_data(h, idx) kh_exist(h, idx)
+#define git_oidmap_key(h, idx) kh_key(h, idx)
#define git_oidmap_value_at(h, idx) kh_val(h, idx)
#define git_oidmap_insert(h, key, val, rval) do { \
diff --git a/src/sortedcache.c b/src/sortedcache.c
index 48e8b6c71..199fa2484 100644
--- a/src/sortedcache.c
+++ b/src/sortedcache.c
@@ -299,7 +299,7 @@ int git_sortedcache_upsert(void **out, git_sortedcache *sc, const char *key)
goto done;
if (!error)
- kh_key(sc->map, pos) = item_key;
+ git_strmap_key(sc->map, pos) = item_key;
git_strmap_value_at(sc->map, pos) = item;
error = git_vector_insert(&sc->items, item);