]> git.ipfire.org Git - thirdparty/git.git/blobdiff - refs.c
refs: drop "broken" flag from for_each_fullref_in()
[thirdparty/git.git] / refs.c
diff --git a/refs.c b/refs.c
index 8b9f7c3a80a0f615e33a7d14cd505c27c3304491..2be0d0f0576368be8b2331ce72ab4bd756eba690 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -1413,14 +1413,21 @@ int head_ref(each_ref_fn fn, void *cb_data)
 
 struct ref_iterator *refs_ref_iterator_begin(
                struct ref_store *refs,
-               const char *prefix, int trim, int flags)
+               const char *prefix, int trim,
+               enum do_for_each_ref_flags flags)
 {
        struct ref_iterator *iter;
 
-       if (ref_paranoia < 0)
-               ref_paranoia = git_env_bool("GIT_REF_PARANOIA", 0);
-       if (ref_paranoia)
-               flags |= DO_FOR_EACH_INCLUDE_BROKEN;
+       if (!(flags & DO_FOR_EACH_INCLUDE_BROKEN)) {
+               static int ref_paranoia = -1;
+
+               if (ref_paranoia < 0)
+                       ref_paranoia = git_env_bool("GIT_REF_PARANOIA", 1);
+               if (ref_paranoia) {
+                       flags |= DO_FOR_EACH_INCLUDE_BROKEN;
+                       flags |= DO_FOR_EACH_OMIT_DANGLING_SYMREFS;
+               }
+       }
 
        iter = refs->be->iterator_begin(refs, prefix, flags);
 
@@ -1479,7 +1486,8 @@ static int do_for_each_ref_helper(struct repository *r,
 }
 
 static int do_for_each_ref(struct ref_store *refs, const char *prefix,
-                          each_ref_fn fn, int trim, int flags, void *cb_data)
+                          each_ref_fn fn, int trim,
+                          enum do_for_each_ref_flags flags, void *cb_data)
 {
        struct ref_iterator *iter;
        struct do_for_each_ref_help hp = { fn, cb_data };
@@ -1514,25 +1522,16 @@ int for_each_ref_in(const char *prefix, each_ref_fn fn, void *cb_data)
        return refs_for_each_ref_in(get_main_ref_store(the_repository), prefix, fn, cb_data);
 }
 
-int for_each_fullref_in(const char *prefix, each_ref_fn fn, void *cb_data, unsigned int broken)
+int for_each_fullref_in(const char *prefix, each_ref_fn fn, void *cb_data)
 {
-       unsigned int flag = 0;
-
-       if (broken)
-               flag = DO_FOR_EACH_INCLUDE_BROKEN;
        return do_for_each_ref(get_main_ref_store(the_repository),
-                              prefix, fn, 0, flag, cb_data);
+                              prefix, fn, 0, 0, cb_data);
 }
 
 int refs_for_each_fullref_in(struct ref_store *refs, const char *prefix,
-                            each_ref_fn fn, void *cb_data,
-                            unsigned int broken)
+                            each_ref_fn fn, void *cb_data)
 {
-       unsigned int flag = 0;
-
-       if (broken)
-               flag = DO_FOR_EACH_INCLUDE_BROKEN;
-       return do_for_each_ref(refs, prefix, fn, 0, flag, cb_data);
+       return do_for_each_ref(refs, prefix, fn, 0, 0, cb_data);
 }
 
 int for_each_replace_ref(struct repository *r, each_repo_ref_fn fn, void *cb_data)
@@ -1624,8 +1623,7 @@ static void find_longest_prefixes(struct string_list *out,
 
 int for_each_fullref_in_prefixes(const char *namespace,
                                 const char **patterns,
-                                each_ref_fn fn, void *cb_data,
-                                unsigned int broken)
+                                each_ref_fn fn, void *cb_data)
 {
        struct string_list prefixes = STRING_LIST_INIT_DUP;
        struct string_list_item *prefix;
@@ -1640,7 +1638,7 @@ int for_each_fullref_in_prefixes(const char *namespace,
 
        for_each_string_list_item(prefix, &prefixes) {
                strbuf_addstr(&buf, prefix->string);
-               ret = for_each_fullref_in(buf.buf, fn, cb_data, broken);
+               ret = for_each_fullref_in(buf.buf, fn, cb_data);
                if (ret)
                        break;
                strbuf_setlen(&buf, namespace_len);