[PATCH 21/30] search_ref_dir(): take (ref_entry *) instead of (ref_dir *)
From: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
---
refs.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/refs.c b/refs.c
index 4bea486..07856fb 100644
--- a/refs.c
+++ b/refs.c
@@ -248,15 +248,19 @@ static int ref_entry_cmp(const void *a, const void *b)
static void sort_ref_dir(struct ref_dir *dir);
/*
- * Return the entry with the given refname from the ref_dir
- * (non-recursively), sorting dir if necessary. Return NULL if no
- * such entry is found.
+ * Return the entry with the given refname from direntry
+ * (non-recursively), sorting direntry if necessary. Return NULL if
+ * no such entry is found.
*/
-static struct ref_entry *search_ref_dir(struct ref_dir *dir, const char *refname)
+static struct ref_entry *search_ref_dir(struct ref_entry *direntry,
+ const char *refname)
{
struct ref_entry *e, **r;
int len;
+ struct ref_dir *dir;
+ assert(direntry->flag & REF_DIR);
+ dir = &direntry->u.subdir;
if (refname == NULL || !dir->nr)
return NULL;
@@ -286,8 +290,7 @@ static struct ref_entry *search_ref_dir(struct ref_dir *dir, const char *refname
static struct ref_entry *search_for_subdir(struct ref_entry *direntry,
const char *subdirname, int mkdir)
{
- struct ref_entry *entry = search_ref_dir(&direntry->u.subdir,
- subdirname);
+ struct ref_entry *entry = search_ref_dir(direntry, subdirname);
if (!entry) {
if (!mkdir)
return NULL;
@@ -338,7 +341,7 @@ static struct ref_entry *find_ref(struct ref_entry *direntry, const char *refnam
direntry = find_containing_direntry(direntry, refname, 0);
if (!direntry)
return NULL;
- entry = search_ref_dir(&direntry->u.subdir, refname);
+ entry = search_ref_dir(direntry, refname);
return (entry && !(entry->flag & REF_DIR)) ? entry : NULL;
}
--
1.7.10