Re: [PATCH] sha1_file: add slash once in for_each_file_in_obj_subdir()
- Date: Sun, 9 Jul 2017 20:06:38 -0400
- From: Jeff King <peff@xxxxxxxx>
- Subject: Re: [PATCH] sha1_file: add slash once in for_each_file_in_obj_subdir()
On Sun, Jul 09, 2017 at 09:41:51AM -0700, Junio C Hamano wrote:
> > 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).