From: Jeff King Date: Sat, 11 Feb 2023 02:15:40 GMT Subject: Re: [PATCH] cache-tree: fix strbuf growth in prime_cache_tree_rec() Message-ID: In-Reply-To: On Fri, Feb 10, 2023 at 12:33:00PM -0800, Junio C Hamano wrote: > > strbuf_setlen() truncates the string to the directory name. strbuf_grow() then > > makes enough room to add that directory name again (that's what I mean with > > "double") plus the entry path. We don't add the directory name a second time, > > so we don't need to make room for it. > > Yeah, I think I made the same mistake number of years ago, thinking > that strbuf_grow() was to grow the buffer to the given size, but in > reality it is to grow the buffer by the given size, which felt a bit > unnatural, at least to me. I do not feel it too strongly but we > might want to rename _grow() to _grow_by() and make _grow() call it > while giving deprecation warning X-<. Having been confused by that myself, I would be happy to see such a name change. > There are ~45 calls to strbuf_grow() in C files other than strbuf.c; > I suspect probably a half or more of them can and should be removed > to reduce the resulting code size without hurting anything. My gut feeling is that your suspicion is giving strbuf_grow() users too much credit. ;) And having looked at the first 7 grep hits, every single one of them seemed pointless to me. I wonder if these would make a good #leftoverbits / micro-project candidate. -Peff