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