summaryrefslogtreecommitdiff
path: root/src/offmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/offmap.c')
-rw-r--r--src/offmap.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/offmap.c b/src/offmap.c
index 561b63cf2..8a3bf4908 100644
--- a/src/offmap.c
+++ b/src/offmap.c
@@ -51,6 +51,24 @@ void *git_offmap_get(git_offmap *map, const git_off_t key)
return kh_val(map, idx);
}
+int git_offmap_set(git_offmap *map, const git_off_t key, void *value)
+{
+ size_t idx;
+ int rval;
+
+ idx = kh_put(off, map, key, &rval);
+ if (rval < 0)
+ return -1;
+
+ if (rval == 0)
+ kh_key(map, idx) = key;
+
+ kh_val(map, idx) = value;
+
+ return 0;
+}
+
+
size_t git_offmap_lookup_index(git_offmap *map, const git_off_t key)
{
return kh_get(off, map, key);