Rohit Mani <rohit.mani@xxxxxxxxxxx> writes: > Avoid scanning strings twice, once with strchr() and then with > strlen(), by using strchrnul(). Update the conditional expressions > involving the return value of strchrnul() with a check for '\0'. > > Signed-off-by: Rohit Mani <rohit.mani@xxxxxxxxxxx> > --- Nicely done. I am not sure if you need to say the "update the conditional...", which is a logical consequence of such a conversion and goes without saying, though. > cache-tree.c | 16 +++++++--------- This part may overlap with other topics in flight, but I expect the conflict resolution would be trivial. > diff --git a/cache-tree.c b/cache-tree.c > index 0bbec43..21a13cf 100644 > --- a/cache-tree.c > +++ b/cache-tree.c > @@ -121,11 +121,11 @@ void cache_tree_invalidate_path(struct cache_tree *it, const char *path) > > if (!it) > return; > - slash = strchr(path, '/'); > + slash = strchrnul(path, '/'); > it->entry_count = -1; > - if (!slash) { > + if (*slash == '\0') { Let's just say if (!*slash) instead; it is more idiomatic (I won't repeat this for other hunks). > int pos; > - namelen = strlen(path); > + namelen = slash - path; After this "if (!*slash)", we compute "namelen = slash-path". Perhaps we can lose this assignment and the other one by hoisting it up before "if (!*slash)"? > @@ -564,10 +562,10 @@ static struct cache_tree *cache_tree_find(struct cache_tree *it, const char *pat > + if (*slash == '\0' || !*slash) Huh? "The byte pointed at by 'slash' is NUL, or it is NUL"??? Other than that, looks good to me. Thanks. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html