722
/* Store the old value, in case this is a recursive call: */
723
old_current_ref = current_ref;
724
current_ref = entry;
725
- retval = data->fn(entry->name + data->trim, entry->u.value.oid.hash,
725
+ retval = data->fn(entry->name + data->trim, &entry->u.value.oid,
726
entry->flag, data->cb_data);
727
current_ref = old_current_ref;
728
return retval;
1756
return !!resolve_ref_unsafe(refname, RESOLVE_REF_READING, sha1, NULL);
1757
}
1758
1759
-static int filter_refs(const char *refname, const unsigned char *sha1, int flags,
1760
- void *data)
1759
+static int filter_refs(const char *refname, const struct object_id *oid,
1760
+ int flags, void *data)
1761
{
1762
struct ref_filter *filter = (struct ref_filter *)data;
1763
+
1764
if (wildmatch(filter->pattern, refname, 0, NULL))
1765
return 0;
1765
- return filter->fn(refname, sha1, flags, filter->cb_data);
1766
+ return filter->fn(refname, oid, flags, filter->cb_data);
1767
}
1768
1769
enum peel_status {
1898
const char *msg_fmt;
1899
};
1900
1900
-static int warn_if_dangling_symref(const char *refname, const unsigned char *sha1,
1901
+static int warn_if_dangling_symref(const char *refname, const struct object_id *oid,
1902
int flags, void *cb_data)
1903
{
1904
struct warn_if_dangling_data *d = cb_data;
2028
2029
static int do_head_ref(const char *submodule, each_ref_fn fn, void *cb_data)
2030
{
2030
- unsigned char sha1[20];
2031
+ struct object_id oid;
2032
int flag;
2033
2034
if (submodule) {
2034
- if (resolve_gitlink_ref(submodule, "HEAD", sha1) == 0)
2035
- return fn("HEAD", sha1, 0, cb_data);
2035
+ if (resolve_gitlink_ref(submodule, "HEAD", oid.hash) == 0)
2036
+ return fn("HEAD", &oid, 0, cb_data);
2037
2038
return 0;
2039
}
2040
2040
- if (!read_ref_full("HEAD", RESOLVE_REF_READING, sha1, &flag))
2041
- return fn("HEAD", sha1, flag, cb_data);
2041
+ if (!read_ref_full("HEAD", RESOLVE_REF_READING, oid.hash, &flag))
2042
+ return fn("HEAD", &oid, flag, cb_data);
2043
2044
return 0;
2045
}
2114
{
2115
struct strbuf buf = STRBUF_INIT;
2116
int ret = 0;
2116
- unsigned char sha1[20];
2117
+ struct object_id oid;
2118
int flag;
2119
2120
strbuf_addf(&buf, "%sHEAD", get_git_namespace());
2120
- if (!read_ref_full(buf.buf, RESOLVE_REF_READING, sha1, &flag))
2121
- ret = fn(buf.buf, sha1, flag, cb_data);
2121
+ if (!read_ref_full(buf.buf, RESOLVE_REF_READING, oid.hash, &flag))
2122
+ ret = fn(buf.buf, &oid, flag, cb_data);
2123
strbuf_release(&buf);
2124
2125
return ret;
2176
DO_FOR_EACH_INCLUDE_BROKEN, cb_data);
2177
}
2178
2179
+int each_ref_fn_adapter(const char *refname,
2180
+ const struct object_id *oid, int flags, void *cb_data)
2181
+{
2182
+ struct each_ref_fn_sha1_adapter *cb = cb_data;
2183
+
2184
+ return cb->original_fn(refname, oid->hash, flags, cb->original_cb_data);
2185
+}
2186
+
2187
const char *prettify_refname(const char *name)
2188
{
2189
return name + (
3625
strbuf_addch(name, '/');
3626
retval = do_for_each_reflog(name, fn, cb_data);
3627
} else {
3619
- unsigned char sha1[20];
3620
- if (read_ref_full(name->buf, 0, sha1, NULL))
3628
+ struct object_id oid;
3629
+
3630
+ if (read_ref_full(name->buf, 0, oid.hash, NULL))
3631
retval = error("bad ref for %s", name->buf);
3632
else
3623
- retval = fn(name->buf, sha1, 0, cb_data);
3633
+ retval = fn(name->buf, &oid, 0, cb_data);
3634
}
3635
if (retval)
3636
break;