Re: [PATCH] use strbuf_addbuf() for appending a strbuf to another
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 22, 2016, 16:22 UTC
- Message-ID
- <xmqqr3albq2s.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20160721210253.GA4604@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 9 quoted lines
> I don't think we do. Going back to the original discussion: > > http://thread.gmane.org/gmane.comp.version-control.git/136141/focus=136774 > > it was mostly just "hey, this would fail really confusingly if we ever > did, so let's make it safe". > > The second strbuf_grow() is by definition a noop (which is why 81d2cae > works at all), but we do pay the size-computation cost.
Both true. If the second one is not a noop, nothing is fixed by 81d2cae at all, but it is subtle.
René's update makes it far easier to understand what is going on.
Show 12 quoted lines
>> -- >8 -- >> Subject: strbuf: avoid calling strbuf_grow() twice in strbuf_addbuf() >> >> Implement strbuf_addbuf() as a normal function in order to avoid calling >> strbuf_grow() twice, with the second callinside strbud_add() being a >> no-op. This is slightly faster and also reduces the text size a bit. > > Seems reasonable. IMHO the main advantage is that one does not have to > reason about the double strbuf_grow() (i.e., that the strbuf_add() is > safe because we know its grow is a noop). > > -Peff