[PATCH 15/38] resolve_ref_recursively(): new function
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Jun 3, 2016, 21:03 UTC
- Message-ID
- <b4f93e572ad6567fd57841c18778c608a6eeaa7a.1464983301.git.mhagger@alum.mit.edu>
- In-Reply-To
- <cover.1464983301.git.mhagger@alum.mit.edu>
Add a new function, resolve_ref_recursively(), which is basically like the old resolve_ref_unsafe() except that it takes a (ref_store *) argument and also works for submodules.
Re-implement resolve_ref_unsafe() as a thin wrapper around resolve_ref_recursively().
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> --- refs.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/refs.c b/refs.c index 9d36dfe..93f2e4d 100644 --- a/refs.c +++ b/refs.c @@ -1216,13 +1216,14 @@ int for_each_rawref(each_ref_fn fn, void *cb_data) } /* This function needs to return a meaningful errno on failure */ -const char *resolve_ref_unsafe(const char *refname, int resolve_flags, - unsigned char *sha1, int *flags) +static const char *resolve_ref_recursively(struct ref_store *refs, + const char *refname, + int resolve_flags, + unsigned char *sha1, int *flags) { static struct strbuf sb_refname = STRBUF_INIT; int unused_flags; int symref_count; - struct ref_store *refs = get_ref_store(NULL); if (!flags) flags = &unused_flags; @@ -1291,6 +1292,13 @@ const char *resolve_ref_unsafe(const char *refname, int resolve_flags, return NULL; } +const char *resolve_ref_unsafe(const char *refname, int resolve_flags, + unsigned char *sha1, int *flags) +{ + return resolve_ref_recursively(get_ref_store(NULL), refname, + resolve_flags, sha1, flags); +} + static struct ref_store *main_ref_store = NULL; static struct ref_store *submodule_ref_stores = NULL;
-- 2.8.1