Re: [PATCH 1/2] add -p: use ALLOC_GROW_BY instead of ALLOW_GROW

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

 



"Phillip Wood via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes:

> From: Phillip Wood <phillip.wood@xxxxxxxxxxxxx>
>
> This simplifies the code slightly, especially the third case where
> hunk_nr was incremented a few lines before ALLOC_GROW().

OK, we lose memset()s that appear to be separate but is a part of
adding more elements.  Makes sense.

>
> Signed-off-by: Phillip Wood <phillip.wood@xxxxxxxxxxxxx>
> ---
>  add-patch.c | 13 ++++---------
>  1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/add-patch.c b/add-patch.c
> index f899389e2c..a15fa407be 100644
> --- a/add-patch.c
> +++ b/add-patch.c
> @@ -457,11 +457,9 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps)
>  			eol = pend;
>  
>  		if (starts_with(p, "diff ")) {
> -			s->file_diff_nr++;
> -			ALLOC_GROW(s->file_diff, s->file_diff_nr,
> +			ALLOC_GROW_BY(s->file_diff, s->file_diff_nr, 1,
>  				   file_diff_alloc);
>  			file_diff = s->file_diff + s->file_diff_nr - 1;
> -			memset(file_diff, 0, sizeof(*file_diff));
>  			hunk = &file_diff->head;
>  			hunk->start = p - plain->buf;
>  			if (colored_p)
> @@ -483,11 +481,9 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps)
>  				 */
>  				hunk->splittable_into++;
>  
> -			file_diff->hunk_nr++;
> -			ALLOC_GROW(file_diff->hunk, file_diff->hunk_nr,
> +			ALLOC_GROW_BY(file_diff->hunk, file_diff->hunk_nr, 1,
>  				   file_diff->hunk_alloc);
>  			hunk = file_diff->hunk + file_diff->hunk_nr - 1;
> -			memset(hunk, 0, sizeof(*hunk));
>  
>  			hunk->start = p - plain->buf;
>  			if (colored)
> @@ -511,7 +507,7 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps)
>  			if (file_diff->mode_change)
>  				BUG("double mode change?\n\n%.*s",
>  				    (int)(eol - plain->buf), plain->buf);
> -			if (file_diff->hunk_nr++)
> +			if (file_diff->hunk_nr)
>  				BUG("mode change in the middle?\n\n%.*s",
>  				    (int)(eol - plain->buf), plain->buf);
>  
> @@ -520,9 +516,8 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps)
>  			 * is _part of_ the header "hunk".
>  			 */
>  			file_diff->mode_change = 1;
> -			ALLOC_GROW(file_diff->hunk, file_diff->hunk_nr,
> +			ALLOC_GROW_BY(file_diff->hunk, file_diff->hunk_nr, 1,
>  				   file_diff->hunk_alloc);
> -			memset(file_diff->hunk, 0, sizeof(struct hunk));
>  			file_diff->hunk->start = p - plain->buf;
>  			if (colored_p)
>  				file_diff->hunk->colored_start =



[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]

  Powered by Linux