summaryrefslogtreecommitdiff
path: root/src/hashtable.h
diff options
context:
space:
mode:
authorCarlos Martín Nieto <carlos@cmartin.tk>2012-01-19 19:06:15 +0100
committerCarlos Martín Nieto <carlos@cmartin.tk>2012-01-19 19:06:15 +0100
commit3f2bf4d659b33db9363d44f14d46154674d4049c (patch)
tree88313142f9ff2d17774a8a870294468c58593a5c /src/hashtable.h
parentd0ec3fb8f07988779783f69ab6cf5f3431c7aa3e (diff)
downloadlibgit2-3f2bf4d659b33db9363d44f14d46154674d4049c.tar.gz
hashtable: add remove2 to retrieve the value that was removed
Diffstat (limited to 'src/hashtable.h')
-rw-r--r--src/hashtable.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/hashtable.h b/src/hashtable.h
index 485b17aa6..cd458eb17 100644
--- a/src/hashtable.h
+++ b/src/hashtable.h
@@ -42,7 +42,15 @@ git_hashtable *git_hashtable_alloc(size_t min_size,
git_hash_ptr hash,
git_hash_keyeq_ptr key_eq);
void *git_hashtable_lookup(git_hashtable *h, const void *key);
-int git_hashtable_remove(git_hashtable *table, const void *key);
+int git_hashtable_remove2(git_hashtable *table, const void *key, void **old_value);
+
+GIT_INLINE(int) git_hashtable_remove(git_hashtable *table, const void *key)
+{
+ void *_unused;
+ return git_hashtable_remove2(table, key, &_unused);
+}
+
+
void git_hashtable_free(git_hashtable *h);
void git_hashtable_clear(git_hashtable *h);
int git_hashtable_merge(git_hashtable *self, git_hashtable *other);