Re: [PATCH] strbuf: allocate enough space when strbuf_setlen() is called first time
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 26, 2011, 21:51 UTC
- Message-ID
- <7vhb9kd6kp.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <4DB738A1.8020706@lsrfire.ath.cx>
René Scharfe <rene.scharfe@lsrfire.ath.cx> writes:
Show 5 quoted lines
> How about something like this instead? The call to strbuf_grow() was > introduced in a8f3e2219 when there was no strbuf_slopbuf buffer that > nowadays makes sure we always have a place to write an initial NUL. > We can take it out again now, simplifying the code and hopefully > avoiding future confusion.
Thanks; I think that makes sense.
It further may make sense to turn the assert into BUG() though, to clarify what kind of programming error we are trying to catch. Perhaps like:
> static inline void strbuf_setlen(struct strbuf *sb, size_t len) {
> + assert(len < (sb->alloc ? sb->alloc : 1)); if (len < (sb->alloc ? sb->alloc : 1))
die("programming error: using strbuf_setlen() to extend a strbuf");> sb->len = len; > sb->buf[len] = '\0'; > }