git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 5/5] sequencer: use oidmap_clear_with_free() for string_entry cleanup

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 2, 2026, 22:38 UTC
Message-ID
<xmqqwlztx3f7.fsf@gitster.g>
In-Reply-To
<20260302200018.75731-6-kuforiji98@gmail.com>
Seyi Kuforiji <kuforiji98@gmail.com> writes:
Show 27 quoted lines
> From: Seyi Kufoiji <kuforiji98@gmail.com>
>
> Switch cleanup of the string_entry oidmap to
> oidmap_clear_with_free() and introduce a free_string_entry()
> helper to properly free each allocated struct string_entry.
>
> This aligns with the ongoing migration to use the callback-based
> oidmap cleanup API.
>
> Signed-off-by: Seyi Kuforiji <kuforiji98@gmail.com>
> ---
>  sequencer.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/sequencer.c b/sequencer.c
> index a3eb39bb25..75ef2ace4f 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -5654,6 +5654,12 @@ struct string_entry {
>  	char string[FLEX_ARRAY];
>  };
>  
> +static void free_string_entry(void *e)
> +{
> +	struct string_entry *entry = container_of(e, struct string_entry, entry);
> +	free(entry);
> +}
Exactly the same comment applies to this step as [PATCH v2 3/5].

In other words, with the current codebase, these three steps in the context of the current code are uninteresting with little value, but if we ever add a member to these entries that hold their own resources, it would become easier to manage the lifetime rules of them.

Show 10 quoted lines
> @@ -6044,8 +6050,8 @@ static int make_script_with_merges(struct pretty_print_context *pp,
>  	oidset_clear(&interesting);
>  	oidset_clear(&child_seen);
>  	oidset_clear(&shown);
> -	oidmap_clear(&commit2todo, 1);
> -	oidmap_clear(&state.commit2label, 1);
> +	oidmap_clear_with_free(&commit2todo, free_string_entry);
> +	oidmap_clear_with_free(&state.commit2label, free_string_entry);
>  	hashmap_clear_and_free(&state.labels, struct labels_entry, entry);
>  	strbuf_release(&state.buf);
Previous: Seyi KuforijiNext: Patrick Steinhardt
Message 24 of 30 in “oidmap: migrate cleanup to oidmap_clear_with_free()”
  1. 0/5 oidmap: migrate cleanup to oidmap_clear_with_free()Seyi Kuforiji, Feb 27, 2026
  2. 1/5 oidmap: make entry cleanup explicit in oidmap_clearSeyi Kuforiji, Feb 27, 2026
  3. 2/5 builtin/rev-list: migrate missing_objects cleanup to oidmap_clear_with_free()Seyi Kuforiji, Feb 27, 2026
  4. Junio C HamanoFeb 28, 2026
  5. 3/5 list-objects-filter: use oidmap_clear_with_free() for cleanupSeyi Kuforiji, Feb 27, 2026
  6. 4/5 odb: use oidmap_clear_with_free() to release replace_map entriesSeyi Kuforiji, Feb 27, 2026
  7. 5/5 sequencer: use oidmap_clear_with_free() for string_entry cleanupSeyi Kuforiji, Feb 27, 2026
  8. 0/5 oidmap: migrate cleanup to oidmap_clear_with_free()Seyi Kuforiji, Mar 2, 2026
  9. 1/5 oidmap: make entry cleanup explicit in oidmap_clearSeyi Kuforiji, Mar 2, 2026
  10. Junio C HamanoMar 2, 2026
  11. 2/5 builtin/rev-list: migrate missing_objects cleanup to oidmap_clear_with_free()Seyi Kuforiji, Mar 2, 2026
  12. Junio C HamanoMar 2, 2026
  13. Patrick SteinhardtMar 4, 2026
  14. 3/5 list-objects-filter: use oidmap_clear_with_free() for cleanupSeyi Kuforiji, Mar 2, 2026
  15. Junio C HamanoMar 2, 2026
  16. Patrick SteinhardtMar 4, 2026
  17. Junio C HamanoMar 4, 2026
  18. Seyi KuforijiMar 4, 2026
  19. Junio C HamanoMar 4, 2026
  20. Junio C HamanoMar 4, 2026
  21. 4/5 odb: use oidmap_clear_with_free() to release replace_map entriesSeyi Kuforiji, Mar 2, 2026
  22. Junio C HamanoMar 2, 2026
  23. 5/5 sequencer: use oidmap_clear_with_free() for string_entry cleanupSeyi Kuforiji, Mar 2, 2026
  24. Junio C HamanoMar 2, 2026
  25. Patrick SteinhardtMar 4, 2026
  26. 0/2 oidmap: migrate cleanup to oidmap_clear_with_free()Seyi Kuforiji, Mar 5, 2026
  27. 1/2 oidmap: make entry cleanup explicit in oidmap_clearSeyi Kuforiji, Mar 5, 2026
  28. 2/2 builtin/rev-list: migrate missing_objects cleanup to oidmap_clear_with_free()Seyi Kuforiji, Mar 5, 2026
  29. Patrick SteinhardtMar 5, 2026
  30. Junio C HamanoMar 5, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.