This function does not free the oidmap struct itself; it just drops all items from the map (using hashmap_clear_() internally). It should be called oidmap_clear(), per CodingGuidelines. Signed-off-by: Jeff King <peff@xxxxxxxx> --- builtin/rev-list.c | 2 +- list-objects-filter.c | 2 +- object-store.c | 2 +- oidmap.c | 2 +- oidmap.h | 5 +++-- sequencer.c | 4 ++-- t/unit-tests/u-oidmap.c | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/builtin/rev-list.c b/builtin/rev-list.c index c4cd4ed5c8..0984b607bf 100644 --- a/builtin/rev-list.c +++ b/builtin/rev-list.c @@ -924,7 +924,7 @@ int cmd_rev_list(int argc, free((void *)entry->path); } - oidmap_free(&missing_objects, true); + oidmap_clear(&missing_objects, true); } stop_progress(&progress); diff --git a/list-objects-filter.c b/list-objects-filter.c index 7765761b3c..78b397bc19 100644 --- a/list-objects-filter.c +++ b/list-objects-filter.c @@ -244,7 +244,7 @@ static void filter_trees_free(void *filter_data) { struct filter_trees_depth_data *d = filter_data; if (!d) return; - oidmap_free(&d->seen_at_depth, 1); + oidmap_clear(&d->seen_at_depth, 1); free(d); } diff --git a/object-store.c b/object-store.c index 6ab50d25d3..bc24e80829 100644 --- a/object-store.c +++ b/object-store.c @@ -1017,7 +1017,7 @@ void raw_object_store_clear(struct raw_object_store *o) { FREE_AND_NULL(o->alternate_db); - oidmap_free(o->replace_map, 1); + oidmap_clear(o->replace_map, 1); FREE_AND_NULL(o->replace_map); pthread_mutex_destroy(&o->replace_mutex); diff --git a/oidmap.c b/oidmap.c index 8b1bc4dec9..508d6c7dec 100644 --- a/oidmap.c +++ b/oidmap.c @@ -22,7 +22,7 @@ void oidmap_init(struct oidmap *map, size_t initial_size) hashmap_init(&map->map, oidmap_neq, NULL, initial_size); } -void oidmap_free(struct oidmap *map, int free_entries) +void oidmap_clear(struct oidmap *map, int free_entries) { if (!map) return; diff --git a/oidmap.h b/oidmap.h index fad412827a..603ae1adbc 100644 --- a/oidmap.h +++ b/oidmap.h @@ -36,12 +36,13 @@ struct oidmap { void oidmap_init(struct oidmap *map, size_t initial_size); /* - * Frees an oidmap structure and allocated memory. + * Clear an oidmap, freeing any allocated memory. The map is empty and + * can be reused without another explicit init. * * If `free_entries` is true, each oidmap_entry in the map is freed as well * using stdlibs free(). */ -void oidmap_free(struct oidmap *map, int free_entries); +void oidmap_clear(struct oidmap *map, int free_entries); /* * Returns the oidmap entry for the specified oid, or NULL if not found. diff --git a/sequencer.c b/sequencer.c index b5c4043757..7fa24db143 100644 --- a/sequencer.c +++ b/sequencer.c @@ -6053,8 +6053,8 @@ static int make_script_with_merges(struct pretty_print_context *pp, oidset_clear(&interesting); oidset_clear(&child_seen); oidset_clear(&shown); - oidmap_free(&commit2todo, 1); - oidmap_free(&state.commit2label, 1); + oidmap_clear(&commit2todo, 1); + oidmap_clear(&state.commit2label, 1); hashmap_clear_and_free(&state.labels, struct labels_entry, entry); strbuf_release(&state.buf); diff --git a/t/unit-tests/u-oidmap.c b/t/unit-tests/u-oidmap.c index dc805b7e3c..b23af449f6 100644 --- a/t/unit-tests/u-oidmap.c +++ b/t/unit-tests/u-oidmap.c @@ -35,7 +35,7 @@ void test_oidmap__initialize(void) void test_oidmap__cleanup(void) { - oidmap_free(&map, 1); + oidmap_clear(&map, 1); } void test_oidmap__replace(void) -- 2.49.0.821.gd3b3298025