From: Michael Haggerty <mhagger@alum.mit.edu>
To: Junio C Hamano <gitster@pobox.com>
Cc: David Kastrup <dak@gnu.org>,
git@vger.kernel.org, Michael Haggerty <mhagger@alum.mit.edu>
Subject: [PATCH v2] cache_tree_find(): remove redundant checks
Date: Tue, 4 Mar 2014 09:31:08 +0100 [thread overview]
Message-ID: <1393921868-4382-1-git-send-email-mhagger@alum.mit.edu> (raw)
The beginning of the loop ensures that slash can never be NULL. So
don't keep checking whether it is NULL later in the loop.
Furthermore, there is no need for an early
return it;
from the loop if slash points at the end of the string, because that
is exactly what will happen when the while condition fails at the
start of the next iteration.
Helped-by: David Kastrup <dak@gnu.org>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
---
I incorporated David's suggestion, and then realized that yet another
check was superfluous, so I removed that one too.
cache-tree.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/cache-tree.c b/cache-tree.c
index 0bbec43..19252c3 100644
--- a/cache-tree.c
+++ b/cache-tree.c
@@ -551,25 +551,22 @@ static struct cache_tree *cache_tree_find(struct cache_tree *it, const char *pat
if (!it)
return NULL;
while (*path) {
- const char *slash;
struct cache_tree_sub *sub;
+ const char *slash = strchr(path, '/');
- slash = strchr(path, '/');
if (!slash)
slash = path + strlen(path);
- /* 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;
}
--
1.9.0
next reply other threads:[~2014-03-04 8:38 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-04 8:31 Michael Haggerty [this message]
2014-03-04 9:40 ` [PATCH v2] cache_tree_find(): remove redundant checks David Kastrup
2014-03-04 10:22 ` Michael Haggerty
2014-03-04 10:34 ` David Kastrup
2014-03-04 21:05 ` Junio C Hamano
2014-03-04 22:24 ` Michael Haggerty
2014-03-04 23:18 ` Junio C Hamano
2014-03-05 17:57 ` Junio C Hamano
2014-03-05 4:38 ` David Kastrup
2014-03-05 18:40 ` Junio C Hamano
2014-03-04 21:11 ` [microproject idea] Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1393921868-4382-1-git-send-email-mhagger@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=dak@gnu.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).