Skip to content

Commit 330a2ae

Browse files
pks-tgitster
authored andcommitted
refs: pass ref store when detecting dangling symrefs
Both `warn_dangling_symref()` and `warn_dangling_symrefs()` derive the ref store via `the_repository`. Adapt them to instead take in the ref store as a parameter. While at it, rename the functions to have a `ref_` prefix to align them with other functions that take a ref store. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 8378c9d commit 330a2ae

File tree

4 files changed

+28
-25
lines changed

4 files changed

+28
-25
lines changed

builtin/fetch.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1412,7 +1412,8 @@ static int prune_refs(struct display_state *display_state,
14121412
_("(none)"), ref->name,
14131413
&ref->new_oid, &ref->old_oid,
14141414
summary_width);
1415-
warn_dangling_symref(stderr, dangling_msg, ref->name);
1415+
refs_warn_dangling_symref(get_main_ref_store(the_repository),
1416+
stderr, dangling_msg, ref->name);
14161417
}
14171418
}
14181419

builtin/remote.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1477,7 +1477,8 @@ static int prune_remote(const char *remote, int dry_run)
14771477
abbrev_ref(refname, "refs/remotes/"));
14781478
}
14791479

1480-
warn_dangling_symrefs(stdout, dangling_msg, &refs_to_prune);
1480+
refs_warn_dangling_symrefs(get_main_ref_store(the_repository),
1481+
stdout, dangling_msg, &refs_to_prune);
14811482

14821483
string_list_clear(&refs_to_prune, 0);
14831484
free_remote_ref_states(&states);

refs.c

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,7 @@ enum peel_status peel_object(const struct object_id *name, struct object_id *oid
447447
}
448448

449449
struct warn_if_dangling_data {
450+
struct ref_store *refs;
450451
FILE *fp;
451452
const char *refname;
452453
const struct string_list *refnames;
@@ -463,8 +464,7 @@ static int warn_if_dangling_symref(const char *refname,
463464
if (!(flags & REF_ISSYMREF))
464465
return 0;
465466

466-
resolves_to = refs_resolve_ref_unsafe(get_main_ref_store(the_repository),
467-
refname, 0, NULL, NULL);
467+
resolves_to = refs_resolve_ref_unsafe(d->refs, refname, 0, NULL, NULL);
468468
if (!resolves_to
469469
|| (d->refname
470470
? strcmp(resolves_to, d->refname)
@@ -477,28 +477,28 @@ static int warn_if_dangling_symref(const char *refname,
477477
return 0;
478478
}
479479

480-
void warn_dangling_symref(FILE *fp, const char *msg_fmt, const char *refname)
480+
void refs_warn_dangling_symref(struct ref_store *refs, FILE *fp,
481+
const char *msg_fmt, const char *refname)
481482
{
482-
struct warn_if_dangling_data data;
483-
484-
data.fp = fp;
485-
data.refname = refname;
486-
data.refnames = NULL;
487-
data.msg_fmt = msg_fmt;
488-
refs_for_each_rawref(get_main_ref_store(the_repository),
489-
warn_if_dangling_symref, &data);
483+
struct warn_if_dangling_data data = {
484+
.refs = refs,
485+
.fp = fp,
486+
.refname = refname,
487+
.msg_fmt = msg_fmt,
488+
};
489+
refs_for_each_rawref(refs, warn_if_dangling_symref, &data);
490490
}
491491

492-
void warn_dangling_symrefs(FILE *fp, const char *msg_fmt, const struct string_list *refnames)
492+
void refs_warn_dangling_symrefs(struct ref_store *refs, FILE *fp,
493+
const char *msg_fmt, const struct string_list *refnames)
493494
{
494-
struct warn_if_dangling_data data;
495-
496-
data.fp = fp;
497-
data.refname = NULL;
498-
data.refnames = refnames;
499-
data.msg_fmt = msg_fmt;
500-
refs_for_each_rawref(get_main_ref_store(the_repository),
501-
warn_if_dangling_symref, &data);
495+
struct warn_if_dangling_data data = {
496+
.refs = refs,
497+
.fp = fp,
498+
.refnames = refnames,
499+
.msg_fmt = msg_fmt,
500+
};
501+
refs_for_each_rawref(refs, warn_if_dangling_symref, &data);
502502
}
503503

504504
int refs_for_each_tag_ref(struct ref_store *refs, each_ref_fn fn, void *cb_data)

refs.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -388,9 +388,10 @@ static inline const char *has_glob_specials(const char *pattern)
388388
return strpbrk(pattern, "?*[");
389389
}
390390

391-
void warn_dangling_symref(FILE *fp, const char *msg_fmt, const char *refname);
392-
void warn_dangling_symrefs(FILE *fp, const char *msg_fmt,
393-
const struct string_list *refnames);
391+
void refs_warn_dangling_symref(struct ref_store *refs, FILE *fp,
392+
const char *msg_fmt, const char *refname);
393+
void refs_warn_dangling_symrefs(struct ref_store *refs, FILE *fp,
394+
const char *msg_fmt, const struct string_list *refnames);
394395

395396
/*
396397
* Flags for controlling behaviour of pack_refs()

0 commit comments

Comments
 (0)