khash: avoid using `kh_key`/`kh_val` as lvalue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
diff --git a/src/cache.c b/src/cache.c
index 965fc0c..5f71d16 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -219,8 +219,8 @@ static void *cache_store(git_cache *cache, git_cached_obj *entry)
git_cached_obj_decref(stored_entry);
git_cached_obj_incref(entry);
- git_oidmap_key(cache->map, pos) = &entry->oid;
- git_oidmap_value_at(cache->map, pos) = entry;
+ git_oidmap_set_key_at(cache->map, pos, &entry->oid);
+ git_oidmap_set_value_at(cache->map, pos, entry);
} else {
/* NO OP */
}
diff --git a/src/indexer.c b/src/indexer.c
index 888a06c..3e88bc7 100644
--- a/src/indexer.c
+++ b/src/indexer.c
@@ -308,7 +308,7 @@ static int store_object(git_indexer *idx)
}
- git_oidmap_value_at(idx->pack->idx_cache, k) = pentry;
+ git_oidmap_set_value_at(idx->pack->idx_cache, k, pentry);
git_oid_cpy(&entry->oid, &oid);
@@ -356,7 +356,7 @@ static int save_entry(git_indexer *idx, struct entry *entry, struct git_pack_ent
return -1;
}
- git_oidmap_value_at(idx->pack->idx_cache, k) = pentry;
+ git_oidmap_set_value_at(idx->pack->idx_cache, k, pentry);
/* Add the object to the list */
if (git_vector_insert(&idx->objects, entry) < 0)
diff --git a/src/odb_mempack.c b/src/odb_mempack.c
index da3d85f..52f8089 100644
--- a/src/odb_mempack.c
+++ b/src/odb_mempack.c
@@ -57,8 +57,8 @@ static int impl__write(git_odb_backend *_backend, const git_oid *oid, const void
obj->len = len;
obj->type = type;
- git_oidmap_key(db->objects, pos) = &obj->oid;
- git_oidmap_value_at(db->objects, pos) = obj;
+ git_oidmap_set_key_at(db->objects, pos, &obj->oid);
+ git_oidmap_set_value_at(db->objects, pos, obj);
if (type == GIT_OBJ_COMMIT) {
struct memobject **store = git_array_alloc(db->commits);
diff --git a/src/oidmap.h b/src/oidmap.h
index c34547a..e736a51 100644
--- a/src/oidmap.h
+++ b/src/oidmap.h
@@ -39,9 +39,11 @@ 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_delete_at(h, idx) kh_del(oid, h, idx)
+#define git_oidmap_key(h, idx) kh_key(h, idx)
+#define git_oidmap_set_key_at(h, idx, k) kh_key(h, idx) = k
+#define git_oidmap_value_at(h, idx) kh_val(h, idx)
+#define git_oidmap_set_value_at(h, idx, v) kh_val(h, idx) = v
+#define git_oidmap_delete_at(h, idx) kh_del(oid, h, idx)
#define git_oidmap_put(h, k, err) kh_put(oid, h, k, err)
diff --git a/src/pack-objects.c b/src/pack-objects.c
index 1604744..fa11763 100644
--- a/src/pack-objects.c
+++ b/src/pack-objects.c
@@ -200,7 +200,7 @@ static void rehash(git_packbuilder *pb)
git_oidmap_clear(pb->object_ix);
for (i = 0, po = pb->object_list; i < pb->nr_objects; i++, po++) {
pos = git_oidmap_put(pb->object_ix, &po->id, &ret);
- git_oidmap_value_at(pb->object_ix, pos) = po;
+ git_oidmap_set_value_at(pb->object_ix, pos, po);
}
}
@@ -252,7 +252,7 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
return ret;
}
assert(ret != 0);
- git_oidmap_value_at(pb->object_ix, pos) = po;
+ git_oidmap_set_value_at(pb->object_ix, pos, po);
pb->done = false;
diff --git a/src/pack.c b/src/pack.c
index 857d266..4e30ca7 100644
--- a/src/pack.c
+++ b/src/pack.c
@@ -171,7 +171,7 @@ static int cache_add(
k = git_offmap_put(cache->entries, offset, &error);
assert(error != 0);
- git_oidmap_value_at(cache->entries, k) = entry;
+ git_offmap_set_value_at(cache->entries, k, entry);
cache->memory_used += entry->raw.len;
*cached_out = entry;
diff --git a/src/revwalk.c b/src/revwalk.c
index 6581d7a..ac54002 100644
--- a/src/revwalk.c
+++ b/src/revwalk.c
@@ -37,7 +37,7 @@ git_commit_list_node *git_revwalk__commit_lookup(
pos = git_oidmap_put(walk->commits, &commit->oid, &ret);
assert(ret != 0);
- git_oidmap_value_at(walk->commits, pos) = commit;
+ git_oidmap_set_value_at(walk->commits, pos, commit);
return commit;
}
diff --git a/src/sortedcache.c b/src/sortedcache.c
index e9e5063..20e137e 100644
--- a/src/sortedcache.c
+++ b/src/sortedcache.c
@@ -299,8 +299,8 @@ int git_sortedcache_upsert(void **out, git_sortedcache *sc, const char *key)
goto done;
if (!error)
- git_strmap_key(sc->map, pos) = item_key;
- git_strmap_value_at(sc->map, pos) = item;
+ git_strmap_set_key_at(sc->map, pos, item_key);
+ git_strmap_set_value_at(sc->map, pos, item);
error = git_vector_insert(&sc->items, item);
if (error < 0)
diff --git a/src/strmap.h b/src/strmap.h
index 4c5f888..7b96956 100644
--- a/src/strmap.h
+++ b/src/strmap.h
@@ -38,6 +38,7 @@ typedef khiter_t git_strmap_iter;
#define git_strmap_has_data(h, idx) kh_exist(h, idx)
#define git_strmap_key(h, idx) kh_key(h, idx)
+#define git_strmap_set_key_at(h, idx, k) kh_val(h, idx) = k
#define git_strmap_value_at(h, idx) kh_val(h, idx)
#define git_strmap_set_value_at(h, idx, v) kh_val(h, idx) = v
#define git_strmap_delete_at(h, idx) kh_del(str, h, idx)
diff --git a/tests/core/oidmap.c b/tests/core/oidmap.c
index 88db692..92b8c19 100644
--- a/tests/core/oidmap.c
+++ b/tests/core/oidmap.c
@@ -39,7 +39,7 @@ void test_core_oidmap__basic(void)
pos = git_oidmap_put(map, &items[i].oid, &ret);
cl_assert(ret != 0);
- git_oidmap_value_at(map, pos) = &items[i];
+ git_oidmap_set_value_at(map, pos, &items[i]);
}
@@ -93,7 +93,7 @@ void test_core_oidmap__hash_collision(void)
pos = git_oidmap_put(map, &items[i].oid, &ret);
cl_assert(ret != 0);
- git_oidmap_value_at(map, pos) = &items[i];
+ git_oidmap_set_value_at(map, pos, &items[i]);
}