Re: [PATCH] merge: use string_list_split() in add_strategies()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi René,

On Fri, 5 Aug 2016, René Scharfe wrote:

>  static void add_strategies(const char *string, unsigned attr)
>  {
> -	struct strategy *list = NULL;
> -	int list_alloc = 0, list_nr = 0, i;
> -
> -	memset(&list, 0, sizeof(list));
> -	split_merge_strategies(string, &list, &list_nr, &list_alloc);
> -	if (list) {
> -		for (i = 0; i < list_nr; i++)
> -			append_strategy(get_strategy(list[i].name));
> +	int i;
> +
> +	if (string) {
> +		struct string_list list = STRING_LIST_INIT_DUP;
> +		struct string_list_item *item;
> +		string_list_split(&list, string, ' ', -1);
> +		for_each_string_list_item(item, &list)
> +			append_strategy(get_strategy(item->string));
> +		string_list_clear(&list, 0);
>  		return;
>  	}

A nice code reduction!

I wonder, however, if we could somhow turn things around by introducing
something like

	split_and_do_for_each(item_p, length, string, delimiter)
		... <do something with item_p and length> ...

that both string_list_split() *and* add_strategies() could use? We would
then be able to avoid allocating the list and duplicating the items in the
latter case.

Ciao,
Dscho

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]