Subject: Re: [PATCH] send-pack: use buffered I/O to talk to pack-objects

From: Matthieu Moy <[email-masked]>
Date: Thu, 09 Jun 2016 14:10:24 +0200

Jeff King <[email-masked]> 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/