summaryrefslogtreecommitdiff
path: root/ref-filter.c
diff options
context:
space:
mode:
authorOlga Telezhnaya <olyatelezhnaya@gmail.com>2018-07-17 08:22:57 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-07-17 22:04:31 (GMT)
commite2255179f68970eb8ed7118334a23970283cb8ec (patch)
tree78dc89f7ffb90eb009f25414a1a1250ad5bdd234 /ref-filter.c
parent04f6ee1a58ec988b3260846812349b39dc08d06b (diff)
downloadgit-e2255179f68970eb8ed7118334a23970283cb8ec.zip
git-e2255179f68970eb8ed7118334a23970283cb8ec.tar.gz
git-e2255179f68970eb8ed7118334a23970283cb8ec.tar.bz2
ref-filter: merge get_obj and get_object
Inline get_obj(): it would be easier to edit the code without this split. Signed-off-by: Olga Telezhnaia <olyatelezhnaya@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'ref-filter.c')
-rw-r--r--ref-filter.c36
1 files changed, 11 insertions, 25 deletions
diff --git a/ref-filter.c b/ref-filter.c
index 8db7ca9..2b401a1 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -797,24 +797,6 @@ int verify_ref_format(struct ref_format *format)
return 0;
}
-/*
- * Given an object name, read the object data and size, and return a
- * "struct object". If the object data we are returning is also borrowed
- * by the "struct object" representation, set *eaten as well---it is a
- * signal from parse_object_buffer to us not to free the buffer.
- */
-static void *get_obj(const struct object_id *oid, struct object **obj, unsigned long *sz, int *eaten)
-{
- enum object_type type;
- void *buf = read_object_file(oid, &type, sz);
-
- if (buf)
- *obj = parse_object_buffer(oid, type, *sz, buf, eaten);
- else
- *obj = NULL;
- return buf;
-}
-
static int grab_objectname(const char *name, const struct object_id *oid,
struct atom_value *v, struct used_atom *atom)
{
@@ -1437,21 +1419,25 @@ static const char *get_refname(struct used_atom *atom, struct ref_array_item *re
}
static int get_object(struct ref_array_item *ref, const struct object_id *oid,
- int deref, struct object **obj, struct strbuf *err)
+ int deref, struct object **obj, struct strbuf *err)
{
/* parse_object_buffer() will set eaten to 0 if free() will be needed */
int eaten = 1;
int ret = 0;
unsigned long size;
- void *buf = get_obj(oid, obj, &size, &eaten);
+ enum object_type type;
+ void *buf = read_object_file(oid, &type, &size);
if (!buf)
ret = strbuf_addf_ret(err, -1, _("missing object %s for %s"),
oid_to_hex(oid), ref->refname);
- else if (!*obj)
- ret = strbuf_addf_ret(err, -1, _("parse_object_buffer failed on %s for %s"),
- oid_to_hex(oid), ref->refname);
- else
- grab_values(ref->value, deref, *obj, buf, size);
+ else {
+ *obj = parse_object_buffer(oid, type, size, buf, &eaten);
+ if (!*obj)
+ ret = strbuf_addf_ret(err, -1, _("parse_object_buffer failed on %s for %s"),
+ oid_to_hex(oid), ref->refname);
+ else
+ grab_values(ref->value, deref, *obj, buf, size);
+ }
if (!eaten)
free(buf);
return ret;