Re: [PATCH] sha1_file: add slash once in for_each_file_in_obj_subdir()
- From
Jeff King <peff@peff.net>
- Date
- Jul 10, 2017, 00:06 UTC
- Message-ID
- <20170710000638.p7foedomfmdakyww@sigill.intra.peff.net>
- In-Reply-To
- <xmqqy3rx8svk.fsf@gitster.mtv.corp.google.com>
On Sun, Jul 09, 2017 at 09:41:51AM -0700, Junio C Hamano wrote:
Show 17 quoted lines
> > On the plus side, this moves an invariant out of the loop. On the minus > > side, it has to introduce an extra variable for "length we add on to" > > versus "dir length to pass to the subdir_cb". That's not rocket science, > > but it does slightly complicate things (though I note we already have > > "origlen", so this is bumping us from 2 to 3 length variables, not 1 to > > 2). > > > > So I dunno. It's fine with me if we take it, and fine if we leave it. > > Unlike origlen, base vs dir lengths are not strictly needed; we > prepare the base including '/', and we know we always have just one > '/' at the end, so anybody that uses dirlen to truncate it back to > the original before passing it down can truncate to (baselen-1), no? > > In other words, something like this (not an incremental but a > replacement) to keep calling "baselen" the length of the leading > constant part we append to?
Yeah, I think that is correct. And you could even drop origlen by replacing it with "baselen - 3" at the end. But somehow doing the computation on the fly actually seems more complicated to me (from the perspective of a reader who is trying to make sure all is correct).
-Peff