Skip to content

Commit

Permalink
search_for_subdir(): return (ref_dir *) instead of (ref_entry *)
Browse files Browse the repository at this point in the history
That is what all the callers want, so give it to them.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Michael Haggerty authored and Junio C Hamano committed May 3, 2012
1 parent d7826d5 commit 3f3aa1b
Showing 1 changed file with 10 additions and 11 deletions.
21 changes: 10 additions & 11 deletions refs.c
Original file line number Diff line number Diff line change
Expand Up @@ -289,8 +289,8 @@ static struct ref_entry *search_ref_dir(struct ref_dir *dir, const char *refname
* directory if it is missing; otherwise, return NULL if the desired
* directory cannot be found.
*/
static struct ref_entry *search_for_subdir(struct ref_dir *dir,
const char *subdirname, int mkdir)
static struct ref_dir *search_for_subdir(struct ref_dir *dir,
const char *subdirname, int mkdir)
{
struct ref_entry *entry = search_ref_dir(dir, subdirname);
if (!entry) {
Expand All @@ -299,8 +299,7 @@ static struct ref_entry *search_for_subdir(struct ref_dir *dir,
entry = create_dir_entry(subdirname);
add_entry_to_dir(dir, entry);
}
assert(entry->flag & REF_DIR);
return entry;
return get_ref_dir(entry);
}

/*
Expand All @@ -319,14 +318,14 @@ static struct ref_dir *find_containing_dir(struct ref_dir *dir,
const char *slash;
strbuf_init(&dirname, PATH_MAX);
for (slash = strchr(refname, '/'); slash; slash = strchr(slash + 1, '/')) {
struct ref_entry *entry;
struct ref_dir *subdir;
strbuf_add(&dirname,
refname + dirname.len,
(slash + 1) - (refname + dirname.len));
entry = search_for_subdir(dir, dirname.buf, mkdir);
if (!entry)
subdir = search_for_subdir(dir, dirname.buf, mkdir);
if (!subdir)
break;
dir = get_ref_dir(entry);
dir = subdir;
}

strbuf_release(&dirname);
Expand Down Expand Up @@ -819,7 +818,7 @@ static void read_loose_refs(struct ref_cache *refs, const char *dirname,
} else if (S_ISDIR(st.st_mode)) {
strbuf_addch(&refname, '/');
read_loose_refs(refs, refname.buf,
get_ref_dir(search_for_subdir(dir, refname.buf, 1)));
search_for_subdir(dir, refname.buf, 1));
} else {
if (*refs->name) {
hashclr(sha1);
Expand All @@ -846,8 +845,8 @@ static struct ref_dir *get_loose_refs(struct ref_cache *refs)
if (!refs->loose) {
refs->loose = create_dir_entry("");
read_loose_refs(refs, "refs/",
get_ref_dir(search_for_subdir(get_ref_dir(refs->loose),
"refs/", 1)));
search_for_subdir(get_ref_dir(refs->loose),
"refs/", 1));
}
return get_ref_dir(refs->loose);
}
Expand Down

0 comments on commit 3f3aa1b

Please sign in to comment.