mirror of
https://github.com/git/git.git
synced 2026-03-05 14:59:04 +01:00
list-objects-filter: use oidmap_clear_with_free() for cleanup
Replace the use of oidmap_clear(&seen_at_depth, 1) in filter_trees_free() with oidmap_clear_with_free(). The seen_at_depth map stores heap-allocated struct seen_map_entry objects. Previously, passing 1 relied on oidmap_clear() internally calling free() on each entry. Convert this to the explicit oidmap_clear_with_free() API and provide a typed free_seen_map_entry() helper to free each container entry. This makes the ownership and cleanup policy explicit and removes reliance on the legacy boolean free_entries parameter. Signed-off-by: Seyi Kuforiji <kuforiji98@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
bbf93f9a3a
commit
6ff1507b1e
@@ -143,6 +143,13 @@ struct seen_map_entry {
|
||||
size_t depth;
|
||||
};
|
||||
|
||||
static void free_seen_map_entry(void *e)
|
||||
{
|
||||
struct seen_map_entry *entry =
|
||||
container_of(e, struct seen_map_entry, base);
|
||||
free(entry);
|
||||
}
|
||||
|
||||
/* Returns 1 if the oid was in the omits set before it was invoked. */
|
||||
static int filter_trees_update_omits(
|
||||
struct object *obj,
|
||||
@@ -244,7 +251,7 @@ static void filter_trees_free(void *filter_data) {
|
||||
struct filter_trees_depth_data *d = filter_data;
|
||||
if (!d)
|
||||
return;
|
||||
oidmap_clear(&d->seen_at_depth, 1);
|
||||
oidmap_clear_with_free(&d->seen_at_depth, free_seen_map_entry);
|
||||
free(d);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user