From: Junio C Hamano Date: Tue, 26 Apr 2011 21:51:50 GMT Subject: Re: [PATCH] strbuf: allocate enough space when strbuf_setlen() is called first time Message-ID: <7vhb9kd6kp.fsf@alter.siamese.dyndns.org> In-Reply-To: <4DB738A1.8020706@lsrfire.ath.cx> René Scharfe writes: > 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'; > }