Git fork

promisor-remote: use string_list_split() in filter_promisor_remote()

A previous commit introduced a new parse_one_advertised_remote()
function that takes a `const char *` argument. This function is called
from filter_promisor_remote() and parses all the fields for one remote.

This means that in filter_promisor_remote() we no longer need to split
the remote information that will be passed to
parse_one_advertised_remote() into an array of relatively heavy and
complex `struct strbuf`.

To use something lighter, let's then replace strbuf_split_str() with
string_list_split() in filter_promisor_remote() to parse the remote
information that is passed to parse_one_advertised_remote().

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

authored by

Christian Couder and committed by
Junio C Hamano
bcb08c83 de1efeaf

+6 -7
+6 -7
promisor-remote.c
··· 623 623 struct strvec *accepted, 624 624 const char *info) 625 625 { 626 - struct strbuf **remotes; 627 626 const char *accept_str; 628 627 enum accept_promisor accept = ACCEPT_NONE; 629 628 struct string_list config_info = STRING_LIST_INIT_NODUP; 629 + struct string_list remote_info = STRING_LIST_INIT_DUP; 630 + struct string_list_item *item; 630 631 631 632 if (!repo_config_get_string_tmp(the_repository, "promisor.acceptfromserver", &accept_str)) { 632 633 if (!*accept_str || !strcasecmp("None", accept_str)) ··· 652 653 653 654 /* Parse remote info received */ 654 655 655 - remotes = strbuf_split_str(info, ';', 0); 656 + string_list_split(&remote_info, info, ";", -1); 656 657 657 - for (size_t i = 0; remotes[i]; i++) { 658 + for_each_string_list_item(item, &remote_info) { 658 659 struct promisor_info *advertised; 659 660 660 - strbuf_strip_suffix(remotes[i], ";"); 661 - 662 - advertised = parse_one_advertised_remote(remotes[i]->buf); 661 + advertised = parse_one_advertised_remote(item->string); 663 662 664 663 if (!advertised) 665 664 continue; ··· 671 670 } 672 671 673 672 promisor_info_list_clear(&config_info); 674 - strbuf_list_free(remotes); 673 + string_list_clear(&remote_info, 0); 675 674 } 676 675 677 676 char *promisor_remote_reply(const char *info)