All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] cache_tree_find(): remove redundant checks
@ 2014-03-04  8:31 Michael Haggerty
  2014-03-04  9:40 ` David Kastrup
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Michael Haggerty @ 2014-03-04  8:31 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: David Kastrup, git, Michael Haggerty

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

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2014-03-05 18:40 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-04  8:31 [PATCH v2] cache_tree_find(): remove redundant checks Michael Haggerty
2014-03-04  9:40 ` 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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.