Re: [PATCH 2/9] cache-tree: extract subtree_pos()
- From
Elijah Newren <newren@gmail.com>
- Date
- Jan 20, 2021, 17:23 UTC
- Message-ID
- <CABPp-BH7K3ddUEJ2aKqZ4D5bkNh43JNm5LuvDRbC5e2nQfVa0g@mail.gmail.com>
- In-Reply-To
- <a6f2406a79512f517a1bc2700f806c546bbe9ed6.1611161639.git.gitgitgadget@gmail.com>
On Wed, Jan 20, 2021 at 8:54 AM Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com> wrote:
Show 59 quoted lines
>
> From: Derrick Stolee <dstolee@microsoft.com>
>
> This method will be helpful to use outside of cache-tree.c in a later
> feature. The implementation is subtle due to subtree_name_cmp() sorting
> by length and then lexicographically.
>
> Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
> ---
> cache-tree.c | 6 +++---
> cache-tree.h | 2 ++
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/cache-tree.c b/cache-tree.c
> index c1e49901c17..2b130dd5e19 100644
> --- a/cache-tree.c
> +++ b/cache-tree.c
> @@ -45,7 +45,7 @@ static int subtree_name_cmp(const char *one, int onelen,
> return memcmp(one, two, onelen);
> }
>
> -static int subtree_pos(struct cache_tree *it, const char *path, int pathlen)
> +int cache_tree_subtree_pos(struct cache_tree *it, const char *path, int pathlen)
> {
> struct cache_tree_sub **down = it->down;
> int lo, hi;
> @@ -72,7 +72,7 @@ static struct cache_tree_sub *find_subtree(struct cache_tree *it,
> int create)
> {
> struct cache_tree_sub *down;
> - int pos = subtree_pos(it, path, pathlen);
> + int pos = cache_tree_subtree_pos(it, path, pathlen);
> if (0 <= pos)
> return it->down[pos];
> if (!create)
> @@ -123,7 +123,7 @@ static int do_invalidate_path(struct cache_tree *it, const char *path)
> it->entry_count = -1;
> if (!*slash) {
> int pos;
> - pos = subtree_pos(it, path, namelen);
> + pos = cache_tree_subtree_pos(it, path, namelen);
> if (0 <= pos) {
> cache_tree_free(&it->down[pos]->cache_tree);
> free(it->down[pos]);
> diff --git a/cache-tree.h b/cache-tree.h
> index 639bfa5340e..8efeccebfc9 100644
> --- a/cache-tree.h
> +++ b/cache-tree.h
> @@ -27,6 +27,8 @@ void cache_tree_free(struct cache_tree **);
> void cache_tree_invalidate_path(struct index_state *, const char *);
> struct cache_tree_sub *cache_tree_sub(struct cache_tree *, const char *);
>
> +int cache_tree_subtree_pos(struct cache_tree *it, const char *path, int pathlen);
> +
> void cache_tree_write(struct strbuf *, struct cache_tree *root);
> struct cache_tree *cache_tree_read(const char *buffer, unsigned long size);
>
> --
> gitgitgadgetSimple, straight-forward patch for exposing the function outside the file scope; looks good.