On Thu, Sep 22, 2016 at 03:17:23PM -0700, Junio C Hamano wrote:

> Jeff King <p...@peff.net> writes:
> 
> > On Mon, Sep 19, 2016 at 08:54:40PM +0200, Kevin Daudt wrote:
> >
> >> + ...
> >> +  while ((c = *in++) != 0) {
> >> +          if (take_next_literally) {
> >> +                  take_next_literally = 0;
> >> +          } else {
> >> [...]
> >> +          }
> >> +
> >> +          strbuf_addch(line, c);
> >> +  }
> >> +}
> >
> > It needs to `free(in)` at the end of the function.
> 
> Ehh, in has been incremented and is pointing at the terminating NUL
> there, so it would be more like
> 
>       char *to_free, *in;
> 
>         to_free = strbuf_detach(line, NULL);
>         in = to_free;
>       ...
>         while ((c = *in++)) {
>               ...
>       }
>         free(to_free);
> 
> I would think ;-).

Oops, yes. It is beginning to make the "strbuf_swap()" look less
convoluted. :)

-Peff

Reply via email to