Re: [PATCH 5/5] branch: fix branch_checked_out() leaks
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 13, 2022, 23:03 UTC
- Message-ID
- <xmqq35g8415f.fsf@gitster.g>
- In-Reply-To
- <6cd7db33-6ab5-9843-4483-4cce9835b177@github.com>
Derrick Stolee <derrickstolee@github.com> writes:
Show 18 quoted lines
> while (worktrees[i]) {
> + char *old;
> struct wt_status_state state = { 0 };
> struct worktree *wt = worktrees[i++];
>
> if (wt->is_bare)
> continue;
>
> - if (wt->head_ref)
> - strmap_put(¤t_checked_out_branches,
> - wt->head_ref,
> - xstrdup(wt->path));
> + if (wt->head_ref) {
> + old = strmap_put(¤t_checked_out_branches,
> + wt->head_ref,
> + xstrdup(wt->path));
> + free(old);
> + }While it is equivalent to
free(strmap_put(¤t_checked_out_branches,
wt->head_ref,
xstrdup(wt->path)));writing the "put the new one" and "discard the old one (if exists)" as separate steps like the above does make it easier to follow, at least to me.
Thanks. Will queue.