refs: move head_ref{,_submodule} to the common code

These don't use any backend-specific functions. These were previously defined in terms of the do_head_ref helper function, but since they are otherwise identical, we don't need that function. Signed-off-by: David Turner <dturner@twopensource.com> Reviewed-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>

David Turner committed Apr 7, 2016 at 15:02 UTC 2bf68ed5aa79fcccba6ea4c021b15e51c019a85e
2 files changed +23 -28
refs.c
+23
@@ -1080,3 +1080,26 @@ int rename_ref_available(const char *oldname, const char *newname)
1080 strbuf_release(&err);
1081 return ret;
1082 }
1083 +
1084 +int head_ref_submodule(const char *submodule, each_ref_fn fn, void *cb_data)
1085 +{
1086 + struct object_id oid;
1087 + int flag;
1088 +
1089 + if (submodule) {
1090 + if (resolve_gitlink_ref(submodule, "HEAD", oid.hash) == 0)
1091 + return fn("HEAD", &oid, 0, cb_data);
1092 +
1093 + return 0;
1094 + }
1095 +
1096 + if (!read_ref_full("HEAD", RESOLVE_REF_READING, oid.hash, &flag))
1097 + return fn("HEAD", &oid, flag, cb_data);
1098 +
1099 + return 0;
1100 +}
1101 +
1102 +int head_ref(each_ref_fn fn, void *cb_data)
1103 +{
1104 + return head_ref_submodule(NULL, fn, cb_data);
1105 +}
refs/files-backend.c
-28
@@ -1745,34 +1745,6 @@ static int do_for_each_ref(struct ref_cache *refs, const char *base,
1745 return do_for_each_entry(refs, base, do_one_ref, &data);
1746 }
1747
1748 -static int do_head_ref(const char *submodule, each_ref_fn fn, void *cb_data)
1749 -{
1750 - struct object_id oid;
1751 - int flag;
1752 -
1753 - if (submodule) {
1754 - if (resolve_gitlink_ref(submodule, "HEAD", oid.hash) == 0)
1755 - return fn("HEAD", &oid, 0, cb_data);
1756 -
1757 - return 0;
1758 - }
1759 -
1760 - if (!read_ref_full("HEAD", RESOLVE_REF_READING, oid.hash, &flag))
1761 - return fn("HEAD", &oid, flag, cb_data);
1762 -
1763 - return 0;
1764 -}
1765 -
1766 -int head_ref(each_ref_fn fn, void *cb_data)
1767 -{
1768 - return do_head_ref(NULL, fn, cb_data);
1769 -}
1770 -
1771 -int head_ref_submodule(const char *submodule, each_ref_fn fn, void *cb_data)
1772 -{
1773 - return do_head_ref(submodule, fn, cb_data);
1774 -}
1775 -
1748 int for_each_ref(each_ref_fn fn, void *cb_data)
1749 {
1750 return do_for_each_ref(&ref_cache, "", fn, 0, 0, cb_data);