Files
git/builtin
Ævar Arnfjörð Bjarmason 5e480176fe stash: always have the owner of "stash_info" free it
Change the initialization of the "revision" member of "struct
stash_info" to be initialized vi a macro, and more importantly that
that initializing function be tasked to free it, usually via a "goto
cleanup" pattern.

Despite the "revision" name (and the topic of the series containing
this commit) the "stash info" has nothing to do with the "struct
rev_info". I'm making this change because in the subsequent commit
when we do want to free the "struct rev_info" via a "goto cleanup"
pattern we'd otherwise free() uninitialized memory in some cases, as
we only strbuf_init() the string in get_stash_info().

So while it's not the smallest possible change, let's convert all
users of this pattern in the file while we're at it.

A good follow-up to this change would be to change all the "ret = -1;
goto done;" in this file to instead use a "goto cleanup", and
initialize "int ret = -1" at the start of the relevant functions. That
would allow us to drop a lot of needless brace verbosity on two-line
"if" statements, but let's leave that alone for now.

To ensure that there's a 1=1 mapping between owners of the "struct
stash_info" and free_stash_info() change the assert_stash_ref()
function to be a trivial get_stash_info_assert() wrapper. The caller
will call free_stash_info(), and by returning -1 we'll eventually (via
!!ret) exit with status 1 anyway.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-13 23:56:08 -07:00
..
2022-02-17 16:25:05 -08:00
2022-03-21 15:14:24 -07:00
2021-10-28 09:57:09 -07:00
2022-03-16 17:53:07 -07:00
2022-03-13 22:23:16 +00:00
2022-03-09 13:38:24 -08:00
2021-04-14 13:47:21 -07:00
2021-09-28 10:31:02 -07:00
2022-02-25 15:47:35 -08:00
2022-02-25 15:47:36 -08:00
2022-01-10 11:52:56 -08:00
2021-11-03 13:25:36 -07:00
2022-03-06 21:25:31 -08:00