Re: [PATCH v2] cache_tree_find(): remove redundant checks
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 4, 2014, 21:05 UTC
- Message-ID
- <xmqq8uspk72g.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <1393921868-4382-1-git-send-email-mhagger@alum.mit.edu>
Michael Haggerty <mhagger@alum.mit.edu> writes:
Show 8 quoted lines
> while (*path) {
> - const char *slash;
> struct cache_tree_sub *sub;
> + const char *slash = strchr(path, '/');
>
> - slash = strchr(path, '/');
> if (!slash)
> slash = path + strlen(path);Isn't the above a strchrnul()?
Combining a freestanding decl with intializer assignment to lose one line is sort of cheating on the line count, but replacing the three lines with a single strchrnul() would be a real code reduction ;-)
Show 21 quoted lines
> - /* between path and slash is the name of the > - * subtree to look for. > + /* > + * Between path and slash is the name of the subtree > + * to look for. > */ > sub = find_subtree(it, path, slash - path, 0); > if (!sub) > return NULL; > it = sub->cache_tree; > - if (slash) > - while (*slash && *slash == '/') > - slash++; > - if (!slash || !*slash) > - return it; /* prefix ended with slashes */ > path = slash; > + while (*path == '/') > + path++; > } > return it; > }