worktree: inline `worktree_ref()` into its only caller

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>
This commit is contained in:
Martin Ågren 2020-09-27 15:15:44 +02:00 коммит произвёл Junio C Hamano
Родитель 962dd7ebc3
Коммит ef2d5547fa
2 изменённых файлов: 6 добавлений и 18 удалений

Просмотреть файл

@ -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;
}

Просмотреть файл

@ -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