From 0ad927e9e0013471cc752781f0c368f862934a44 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 7 Jul 2023 15:21:15 -0700 Subject: tree-walk: lose base_offset that is never used in tree_entry_interesting The tree_entry_interesting() function takes base_offset, allowing its callers to potentially pass a non-zero number to skip the early part of the path string. The feature is never exercised and we do not even know what bugs are lurking there, as all callers pass 0 to the parameter. Signed-off-by: Junio C Hamano --- tree-walk.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'tree-walk.c') diff --git a/tree-walk.c b/tree-walk.c index d3c48e06df..28d59936ad 100644 --- a/tree-walk.c +++ b/tree-walk.c @@ -435,7 +435,7 @@ static inline int prune_traversal(struct index_state *istate, if (still_interesting < 0) return still_interesting; return tree_entry_interesting(istate, e, base, - 0, info->pathspec); + info->pathspec); } int traverse_trees(struct index_state *istate, @@ -1223,10 +1223,11 @@ interesting: */ enum interesting tree_entry_interesting(struct index_state *istate, const struct name_entry *entry, - struct strbuf *base, int base_offset, + struct strbuf *base, const struct pathspec *ps) { enum interesting positive, negative; + const int base_offset = 0; positive = do_match(istate, entry, base, base_offset, ps, 0); /* -- cgit v1.2.3 From 30c8c55cbfa6e4f81e4d73767294f50f5d9c7d10 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 7 Jul 2023 15:21:16 -0700 Subject: tree-walk: drop unused base_offset from do_match() The tree-walk.c:do_match() function takes base_offset but just like tree_entry_interesting() we dealt with earlier, nobody passes a value other than 0 in it. Get rid of the parameter to avoid having to worry about potential bugs lurking unexercised. Signed-off-by: Junio C Hamano --- tree-walk.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) (limited to 'tree-walk.c') diff --git a/tree-walk.c b/tree-walk.c index 28d59936ad..6f8ff8a098 100644 --- a/tree-walk.c +++ b/tree-walk.c @@ -1016,17 +1016,17 @@ static int match_wildcard_base(const struct pathspec_item *item, /* * Is a tree entry interesting given the pathspec we have? * - * Pre-condition: either baselen == base_offset (i.e. empty path) + * Pre-condition: either baselen == 0 (i.e. empty path) * or base[baselen-1] == '/' (i.e. with trailing slash). */ static enum interesting do_match(struct index_state *istate, const struct name_entry *entry, - struct strbuf *base, int base_offset, + struct strbuf *base, const struct pathspec *ps, int exclude) { int i; - int pathlen, baselen = base->len - base_offset; + int pathlen, baselen = base->len; enum interesting never_interesting = ps->has_wildcard ? entry_not_interesting : all_entries_not_interesting; @@ -1044,7 +1044,7 @@ static enum interesting do_match(struct index_state *istate, !(ps->magic & PATHSPEC_MAXDEPTH) || ps->max_depth == -1) return all_entries_interesting; - return within_depth(base->buf + base_offset, baselen, + return within_depth(base->buf, baselen, !!S_ISDIR(entry->mode), ps->max_depth) ? entry_interesting : entry_not_interesting; @@ -1055,7 +1055,7 @@ static enum interesting do_match(struct index_state *istate, for (i = ps->nr - 1; i >= 0; i--) { const struct pathspec_item *item = ps->items+i; const char *match = item->match; - const char *base_str = base->buf + base_offset; + const char *base_str = base->buf; int matchlen = item->len, matched = 0; if ((!exclude && item->magic & PATHSPEC_EXCLUDE) || @@ -1148,9 +1148,9 @@ match_wildcards: strbuf_add(base, entry->path, pathlen); - if (!git_fnmatch(item, match, base->buf + base_offset, + if (!git_fnmatch(item, match, base->buf, item->nowildcard_len)) { - strbuf_setlen(base, base_offset + baselen); + strbuf_setlen(base, baselen); goto interesting; } @@ -1162,13 +1162,13 @@ match_wildcards: * be performed in the submodule itself. */ if (ps->recurse_submodules && S_ISGITLINK(entry->mode) && - !ps_strncmp(item, match, base->buf + base_offset, + !ps_strncmp(item, match, base->buf, item->nowildcard_len)) { - strbuf_setlen(base, base_offset + baselen); + strbuf_setlen(base, baselen); goto interesting; } - strbuf_setlen(base, base_offset + baselen); + strbuf_setlen(base, baselen); /* * Match all directories. We'll try to match files @@ -1204,9 +1204,9 @@ interesting: return entry_interesting; strbuf_add(base, entry->path, pathlen); - ret = match_pathspec_attrs(istate, base->buf + base_offset, - base->len - base_offset, item); - strbuf_setlen(base, base_offset + baselen); + ret = match_pathspec_attrs(istate, base->buf, + base->len, item); + strbuf_setlen(base, baselen); if (!ret) continue; } @@ -1218,7 +1218,7 @@ interesting: /* * Is a tree entry interesting given the pathspec we have? * - * Pre-condition: either baselen == base_offset (i.e. empty path) + * Pre-condition: either baselen == 0 (i.e. empty path) * or base[baselen-1] == '/' (i.e. with trailing slash). */ enum interesting tree_entry_interesting(struct index_state *istate, @@ -1227,8 +1227,7 @@ enum interesting tree_entry_interesting(struct index_state *istate, const struct pathspec *ps) { enum interesting positive, negative; - const int base_offset = 0; - positive = do_match(istate, entry, base, base_offset, ps, 0); + positive = do_match(istate, entry, base, ps, 0); /* * case | entry | positive | negative | result @@ -1265,7 +1264,7 @@ enum interesting tree_entry_interesting(struct index_state *istate, positive <= entry_not_interesting) /* #1, #2, #11, #12 */ return positive; - negative = do_match(istate, entry, base, base_offset, ps, 1); + negative = do_match(istate, entry, base, ps, 1); /* #8, #18 */ if (positive == all_entries_interesting && -- cgit v1.2.3