Subject: Re: [PATCH v5 19/27] sequencer: stop releasing the strbuf in write_message()

From: Junio C Hamano <[email-masked]>
Date: Fri, 21 Oct 2016 11:30:55 -0700

Johannes Schindelin <[email-masked]> writes:

> Nothing in the name "write_message()" suggests that the function
> releases the strbuf passed to it. So let's release the strbuf in the
> caller instead.
>
> Signed-off-by: Johannes Schindelin <[email-masked]>
> ---

I agree that it makes quite a lot of sense from the point of view of
"taste in the API design".

>  sequencer.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sequencer.c b/sequencer.c
> index d74fdce..745c86f 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -243,7 +243,6 @@ static int write_message(struct strbuf *msgbuf, const char *filename)
>  		return error_errno(_("Could not lock '%s'"), filename);
>  	if (write_in_full(msg_fd, msgbuf->buf, msgbuf->len) < 0)
>  		return error_errno(_("Could not write to %s"), filename);
> -	strbuf_release(msgbuf);
>  	if (commit_lock_file(&msg_file) < 0)
>  		return error(_("Error wrapping up %s."), filename);
>  
> @@ -759,6 +758,7 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
>  		free_commit_list(common);
>  		free_commit_list(remotes);
>  	}
> +	strbuf_release(&msgbuf);
>  
>  	/*
>  	 * If the merge was clean or if it failed due to conflict, we write