From: Matthieu Moy Date: Thu, 09 Jun 2016 12:10:24 GMT Subject: Re: [PATCH] send-pack: use buffered I/O to talk to pack-objects Message-ID: In-Reply-To: <20160608194216.GA3731@sigill.intra.peff.net> Jeff King writes: > --- a/send-pack.c > +++ b/send-pack.c > @@ -36,18 +36,15 @@ int option_parse_push_signed(const struct option *opt, > die("bad %s argument: %s", opt->long_name, arg); > } > > -static int feed_object(const unsigned char *sha1, int fd, int negative) > +static void feed_object(const unsigned char *sha1, FILE *fh, int negative) > { > - char buf[42]; > - > if (negative && !has_sha1_file(sha1)) > - return 1; > + return; [...] > @@ -97,21 +95,22 @@ static int pack_objects(int fd, struct ref *refs, struct sha1_array *extra, stru [...] > for (i = 0; i < extra->nr; i++) > - if (!feed_object(extra->sha1[i], po.in, 1)) > - break; > + feed_object(extra->sha1[i], po_in, 1); I may have missed the obvious, but doesn't this change the behavior when "negative && !has_sha1_file(sha1)" happens? I understand that you don't need write_or_whine anymore, but don't understand how you get rid of the "return 1" here. -- Matthieu Moy http://www-verimag.imag.fr/~moy/