]> git.ipfire.org Git - thirdparty/git.git/commitdiff
worktree: inline `worktree_ref()` into its only caller
authorMartin Ågren <martin.agren@gmail.com>
Sun, 27 Sep 2020 13:15:44 +0000 (15:15 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 27 Sep 2020 21:21:47 +0000 (14:21 -0700)
We have `strbuf_worktree_ref()`, which works on a strbuf, and a wrapper
for it, `worktree_ref()` which returns a string. We even make this
wrapper available through worktree.h. But it only has a single caller,
sitting right next to it in worktree.c.

Just inline the wrapper into its only caller. This means the caller can
quite naturally reuse a single strbuf. We currently achieve something
similar by having a static strbuf in the wrapper.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
worktree.c
worktree.h

index 62a7eb9342802ce1e103bffcdc19597060191bae..a98f77d19f48e314be78185380b2a173b03bed2c 100644 (file)
@@ -536,18 +536,10 @@ void strbuf_worktree_ref(const struct worktree *wt,
        strbuf_addstr(sb, refname);
 }
 
-const char *worktree_ref(const struct worktree *wt, const char *refname)
-{
-       static struct strbuf sb = STRBUF_INIT;
-
-       strbuf_reset(&sb);
-       strbuf_worktree_ref(wt, &sb, refname);
-       return sb.buf;
-}
-
 int other_head_refs(each_ref_fn fn, void *cb_data)
 {
        struct worktree **worktrees, **p;
+       struct strbuf refname = STRBUF_INIT;
        int ret = 0;
 
        worktrees = get_worktrees();
@@ -559,14 +551,17 @@ int other_head_refs(each_ref_fn fn, void *cb_data)
                if (wt->is_current)
                        continue;
 
+               strbuf_reset(&refname);
+               strbuf_worktree_ref(wt, &refname, "HEAD");
                if (!refs_read_ref_full(get_main_ref_store(the_repository),
-                                       worktree_ref(wt, "HEAD"),
+                                       refname.buf,
                                        RESOLVE_REF_READING,
                                        &oid, &flag))
-                       ret = fn(worktree_ref(wt, "HEAD"), &oid, flag, cb_data);
+                       ret = fn(refname.buf, &oid, flag, cb_data);
                if (ret)
                        break;
        }
        free_worktrees(worktrees);
+       strbuf_release(&refname);
        return ret;
 }
index 516744c433f1e627abe85a347d72e6516f98c171..1449b6bf5ded3a30dea0ceb83fc770c688fa2c48 100644 (file)
@@ -136,11 +136,4 @@ void strbuf_worktree_ref(const struct worktree *wt,
                         struct strbuf *sb,
                         const char *refname);
 
-/*
- * Return a refname suitable for access from the current ref
- * store. The result will be destroyed at the next call.
- */
-const char *worktree_ref(const struct worktree *wt,
-                        const char *refname);
-
 #endif