trailer: make parse_trailers() return trailer_info pointer
commit24a25c630cfe72d2d77fed5d2841f7c017a269b5
authorLinus Arver <linus@ucla.edu>
Thu, 2 May 2024 04:54:23 +0000 (2 04:54 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 2 May 2024 16:57:08 +0000 (2 09:57 -0700)
treefa702385e59e1e4235fc9abe509efbb7c6a96417
parent655eb65d48bec60d24baf66bf19de394eb2e6aea
trailer: make parse_trailers() return trailer_info pointer

This is the second and final preparatory commit for making the
trailer_info struct private to the trailer implementation.

Make trailer_info_get() do the actual work of allocating a new
trailer_info struct, and return a pointer to it. Because
parse_trailers() wraps around trailer_info_get(), it too can return this
pointer to the caller. From the trailer API user's perspective, the call
to trailer_info_new() can be replaced with parse_trailers(); do so in
interpret-trailers.

Because trailer_info_new() is no longer called by interpret-trailers,
remove this function from the trailer API.

With this change, we no longer allocate trailer_info on the stack ---
all uses of it are via a pointer where the actual data is always
allocated at runtime through trailer_info_new(). Make
trailer_info_release() free this dynamically allocated memory.

Finally, due to the way the function signatures of parse_trailers() and
trailer_info_get() have changed, update the callsites in
format_trailers_from_commit() and trailer_iterator_init() accordingly.

Helped-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Linus Arver <linus@ucla.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/interpret-trailers.c
trailer.c
trailer.h