Re: [PATCH 7/9] bundle.c: convert leaf functions to struct object_id
From: Michael Haggerty <hidden>
Date: 2016-06-15 23:01:01
On 05/03/2014 10:12 PM, brian m. carlson wrote:
quoted hunk ↗ jump to hunk
Signed-off-by: brian m. carlson <redacted> --- bundle.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-)diff --git a/bundle.c b/bundle.c index 1222952..798ba28 100644 --- a/bundle.c +++ b/bundle.c@@ -11,11 +11,11 @@ static const char bundle_signature[] = "# v2 git bundle\n"; -static void add_to_ref_list(const unsigned char *sha1, const char *name, +static void add_to_ref_list(const struct object_id *sha1, const char *name, struct ref_list *list) { ALLOC_GROW(list->list, list->nr + 1, list->alloc); - hashcpy(list->list[list->nr].sha1, sha1); + hashcpy(list->list[list->nr].sha1, sha1->oid); list->list[list->nr].name = xstrdup(name); list->nr++; }@@ -39,7 +39,7 @@ static int parse_bundle_header(int fd, struct bundle_header *header, /* The bundle header ends with an empty line */ while (!strbuf_getwholeline_fd(&buf, fd, '\n') && buf.len && buf.buf[0] != '\n') { - unsigned char sha1[20]; + struct object_id sha1; int is_prereq = 0; if (*buf.buf == '-') {@@ -53,9 +53,9 @@ static int parse_bundle_header(int fd, struct bundle_header *header, * Prerequisites have object name that is optionally * followed by SP and subject line. */ - if (get_sha1_hex(buf.buf, sha1) || - (buf.len > 40 && !isspace(buf.buf[40])) || - (!is_prereq && buf.len <= 40)) { + if (get_sha1_hex(buf.buf, sha1.oid) || + (buf.len > GIT_OID_HEXSZ && !isspace(buf.buf[GIT_OID_HEXSZ])) || + (!is_prereq && buf.len <= GIT_OID_HEXSZ)) { if (report_path) error(_("unrecognized header: %s%s (%d)"), (is_prereq ? "-" : ""), buf.buf, (int)buf.len);@@ -63,9 +63,9 @@ static int parse_bundle_header(int fd, struct bundle_header *header, break; } else { if (is_prereq) - add_to_ref_list(sha1, "", &header->prerequisites); + add_to_ref_list(&sha1, "", &header->prerequisites); else - add_to_ref_list(sha1, buf.buf + 41, &header->references); + add_to_ref_list(&sha1, buf.buf + 41, &header->references);
I think that 41 here is GIT_OID_HEXSZ + 1.
[...]
Michael -- Michael Haggerty mhagger@alum.mit.edu http://softwareswirl.blogspot.com/