upload-pack: pass upload_pack_data to ok_to_give_up()

As we cleanup 'upload-pack.c' by using 'struct upload_pack_data'
more thoroughly, let's pass that struct to ok_to_give_up(), so
that this function can use all the fields of the struct.

This will be used in followup commits to move a static variable
into 'upload_pack_data'.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Christian Couder 2020-06-11 14:05:15 +02:00 коммит произвёл Junio C Hamano
Родитель 6fbbc4374f
Коммит 0866734820
1 изменённых файлов: 6 добавлений и 7 удалений

Просмотреть файл

@ -428,15 +428,14 @@ static int got_oid(const char *hex, struct object_id *oid,
return 0; return 0;
} }
static int ok_to_give_up(const struct object_array *have_obj, static int ok_to_give_up(struct upload_pack_data *data)
struct object_array *want_obj)
{ {
uint32_t min_generation = GENERATION_NUMBER_ZERO; uint32_t min_generation = GENERATION_NUMBER_ZERO;
if (!have_obj->nr) if (!data->have_obj.nr)
return 0; return 0;
return can_all_from_reach_with_flag(want_obj, THEY_HAVE, return can_all_from_reach_with_flag(&data->want_obj, THEY_HAVE,
COMMON_KNOWN, oldest_have, COMMON_KNOWN, oldest_have,
min_generation); min_generation);
} }
@ -461,7 +460,7 @@ static int get_common_commits(struct upload_pack_data *data,
if (data->multi_ack == MULTI_ACK_DETAILED if (data->multi_ack == MULTI_ACK_DETAILED
&& got_common && got_common
&& !got_other && !got_other
&& ok_to_give_up(&data->have_obj, &data->want_obj)) { && ok_to_give_up(data)) {
sent_ready = 1; sent_ready = 1;
packet_write_fmt(1, "ACK %s ready\n", last_hex); packet_write_fmt(1, "ACK %s ready\n", last_hex);
} }
@ -483,7 +482,7 @@ static int get_common_commits(struct upload_pack_data *data,
case -1: /* they have what we do not */ case -1: /* they have what we do not */
got_other = 1; got_other = 1;
if (data->multi_ack if (data->multi_ack
&& ok_to_give_up(&data->have_obj, &data->want_obj)) { && ok_to_give_up(data)) {
const char *hex = oid_to_hex(&oid); const char *hex = oid_to_hex(&oid);
if (data->multi_ack == MULTI_ACK_DETAILED) { if (data->multi_ack == MULTI_ACK_DETAILED) {
sent_ready = 1; sent_ready = 1;
@ -1402,7 +1401,7 @@ static int send_acks(struct upload_pack_data *data, struct oid_array *acks)
oid_to_hex(&acks->oid[i])); oid_to_hex(&acks->oid[i]));
} }
if (ok_to_give_up(&data->have_obj, &data->want_obj)) { if (ok_to_give_up(data)) {
/* Send Ready */ /* Send Ready */
packet_writer_write(&data->writer, "ready\n"); packet_writer_write(&data->writer, "ready\n");
return 1; return 1;