diff options
| author | Patrick Steinhardt <ps@pks.im> | 2018-12-01 08:50:36 +0100 |
|---|---|---|
| committer | Patrick Steinhardt <ps@pks.im> | 2019-02-15 13:16:48 +0100 |
| commit | 84a089da3701db370b2c77e6866abe3a5065c542 (patch) | |
| tree | a70b47efb1c29ab0c779fbb7f25447a33d9d0dce /src/offmap.h | |
| parent | 8da93944f3d3c271ea7a2ec035c6ea48654fa71e (diff) | |
| download | libgit2-84a089da3701db370b2c77e6866abe3a5065c542.tar.gz | |
maps: provide return value when deleting entries
Currently, the delete functions of maps do not provide a return value. Like
this, it is impossible to tell whether the entry has really been deleted or not.
Change the implementation to provide either a return value of zero if the entry
has been successfully deleted or `GIT_ENOTFOUND` if the key could not be found.
Convert callers to the `delete_at` functions to instead use this higher-level
interface.
Diffstat (limited to 'src/offmap.h')
| -rw-r--r-- | src/offmap.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/offmap.h b/src/offmap.h index bf2ef7fbb..e7187d391 100644 --- a/src/offmap.h +++ b/src/offmap.h @@ -76,6 +76,20 @@ void *git_offmap_get(git_offmap *map, const git_off_t key); */ int git_offmap_set(git_offmap *map, const git_off_t key, void *value); +/** + * Delete an entry from the map. + * + * Delete the given key and its value from the map. If no such + * key exists, this will do nothing. + * + * @param map map to delete key in + * @param key key to delete + * @return `0` if the key has been deleted, GIT_ENOTFOUND if no + * such key was found, a negative code in case of an + * error + */ +int git_offmap_delete(git_offmap *map, const git_off_t key); + size_t git_offmap_lookup_index(git_offmap *map, const git_off_t key); int git_offmap_valid_index(git_offmap *map, size_t idx); @@ -89,7 +103,6 @@ void git_offmap_delete_at(git_offmap *map, size_t idx); int git_offmap_put(git_offmap *map, const git_off_t key, int *err); void git_offmap_insert(git_offmap *map, const git_off_t key, void *value, int *rval); -void git_offmap_delete(git_offmap *map, const git_off_t key); size_t git_offmap_begin(git_offmap *map); size_t git_offmap_end(git_offmap *map); |
