# [PATCH] GSoC2014 microprojects #6 Change bundle.c:add_to_ref_list() to use ALLOC_GROW()

4 messages from 2014-02-27 to 2014-02-27. Participants: Sun He, Philip Oakley, Junio C Hamano, Michael Haggerty.
Thread: https://gitlist.dev/t/35979

## Sun He, 2014-02-27 16:18

Subject: [PATCH] GSoC2014 microprojects #6 Change bundle.c:add_to_ref_list() to use ALLOC_GROW()
Message-ID: <1393517894-670-1-git-send-email-sunheehnus@gmail.com>
URL: https://gitlist.dev/e/1393517894-670-1-git-send-email-sunheehnus%40gmail.com

```

Signed-off-by: Sun He <sunheehnus@gmail.com>
---
 bundle.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/bundle.c b/bundle.c
index 7809fbb..1a7b7eb 100644
--- a/bundle.c
+++ b/bundle.c
@@ -14,11 +14,7 @@ static const char bundle_signature[] = "# v2 git bundle\n";
 static void add_to_ref_list(const unsigned char *sha1, const char *name,
 		struct ref_list *list)
 {
-	if (list->nr + 1 >= list->alloc) {
-		list->alloc = alloc_nr(list->nr + 1);
-		list->list = xrealloc(list->list,
-				list->alloc * sizeof(list->list[0]));
-	}
+    ALLOC_GROW(list->list,list->nr,list->alloc);
 	hashcpy(list->list[list->nr].sha1, sha1);
 	list->list[list->nr].name = xstrdup(name);
 	list->nr++;
-- 
1.7.1

```

## Philip Oakley, 2014-02-27 16:18

Subject: Re: [PATCH] GSoC2014 microprojects #6 Change bundle.c:add_to_ref_list() to use ALLOC_GROW()
Message-ID: <D5ECFBC97E4246CBB939B7670259D3DC@PhilipOakley>
URL: https://gitlist.dev/e/D5ECFBC97E4246CBB939B7670259D3DC%40PhilipOakley
In-Reply-To: <1393517894-670-1-git-send-email-sunheehnus@gmail.com>

```
From: "Sun He" <sunheehnus@gmail.com>
>
> Signed-off-by: Sun He <sunheehnus@gmail.com>
> ---
> bundle.c |    6 +-----
> 1 files changed, 1 insertions(+), 5 deletions(-)
>
> diff --git a/bundle.c b/bundle.c
> index 7809fbb..1a7b7eb 100644
> --- a/bundle.c
> +++ b/bundle.c
> @@ -14,11 +14,7 @@ static const char bundle_signature[] = "# v2 git 
> bundle\n";
> static void add_to_ref_list(const unsigned char *sha1, const char 
> *name,
>  struct ref_list *list)
> {
> - if (list->nr + 1 >= list->alloc) {
> - list->alloc = alloc_nr(list->nr + 1);
> - list->list = xrealloc(list->list,
> - list->alloc * sizeof(list->list[0]));
> - }
> +    ALLOC_GROW(list->list,list->nr,list->alloc);
>  hashcpy(list->list[list->nr].sha1, sha1);

Isn't this on top of your other micro-project patch?

If so, it is worth including a note after your signoff and --- to say 
that, so they get applied in the right order :: The principle of least 
surprise.

>  list->list[list->nr].name = xstrdup(name);
>  list->nr++;
> -- 
> 1.7.1
>
> --
Philip 

```

## Junio C Hamano, 2014-02-27 19:44

Subject: Re: [PATCH] GSoC2014 microprojects #6 Change bundle.c:add_to_ref_list() to use ALLOC_GROW()
Message-ID: <xmqqzjlcxrva.fsf@gitster.dls.corp.google.com>
URL: https://gitlist.dev/e/xmqqzjlcxrva.fsf%40gitster.dls.corp.google.com
In-Reply-To: <1393517894-670-1-git-send-email-sunheehnus@gmail.com>

```
Sun He <sunheehnus@gmail.com> writes:

> Signed-off-by: Sun He <sunheehnus@gmail.com>
> ---

The subject reads:

>> Subject: [PATCH] GSoC2014 microprojects #6 Change bundle.c:add_to_ref_list() to use ALLOC_GROW()

I do not think we want to see the leading part of it in our "git
shortlog" output.

	Subject: [PATCH] bundle.c:add_to_ref_list(): use ALLOC_GROW()

or something, perhaps.

>  bundle.c |    6 +-----
>  1 files changed, 1 insertions(+), 5 deletions(-)
>
> diff --git a/bundle.c b/bundle.c
> index 7809fbb..1a7b7eb 100644
> --- a/bundle.c
> +++ b/bundle.c
> @@ -14,11 +14,7 @@ static const char bundle_signature[] = "# v2 git bundle\n";
>  static void add_to_ref_list(const unsigned char *sha1, const char *name,
>  		struct ref_list *list)
>  {
> -	if (list->nr + 1 >= list->alloc) {
> -		list->alloc = alloc_nr(list->nr + 1);
> -		list->list = xrealloc(list->list,
> -				list->alloc * sizeof(list->list[0]));
> -	}
> +    ALLOC_GROW(list->list,list->nr,list->alloc);
>  	hashcpy(list->list[list->nr].sha1, sha1);
>  	list->list[list->nr].name = xstrdup(name);
>  	list->nr++;

```

## Michael Haggerty, 2014-02-27 21:51

Subject: Re: [PATCH] GSoC2014 microprojects #6 Change bundle.c:add_to_ref_list() to use ALLOC_GROW()
Message-ID: <530FB36D.6060103@alum.mit.edu>
URL: https://gitlist.dev/e/530FB36D.6060103%40alum.mit.edu
In-Reply-To: <1393517894-670-1-git-send-email-sunheehnus@gmail.com>

```
On 02/27/2014 05:18 PM, Sun He wrote:
> Signed-off-by: Sun He <sunheehnus@gmail.com>
> ---
>  bundle.c |    6 +-----
>  1 files changed, 1 insertions(+), 5 deletions(-)
> 
> diff --git a/bundle.c b/bundle.c
> index 7809fbb..1a7b7eb 100644
> --- a/bundle.c
> +++ b/bundle.c
> @@ -14,11 +14,7 @@ static const char bundle_signature[] = "# v2 git bundle\n";
>  static void add_to_ref_list(const unsigned char *sha1, const char *name,
>  		struct ref_list *list)
>  {
> -	if (list->nr + 1 >= list->alloc) {
> -		list->alloc = alloc_nr(list->nr + 1);
> -		list->list = xrealloc(list->list,
> -				list->alloc * sizeof(list->list[0]));
> -	}
> +    ALLOC_GROW(list->list,list->nr,list->alloc);
>  	hashcpy(list->list[list->nr].sha1, sha1);
>  	list->list[list->nr].name = xstrdup(name);
>  	list->nr++;
> 

Many of my comments about the formatting of your other patches apply
here.  Also, we put spaces after ",", as you can see in the very next line.

I'm also pretty sure there is a serious error in your code.  But I'd
rather you stick to one microproject and get it perfect rather than do
them all--especially all at once, with no time to incorporate feedback
from one microproject into the attempt at the next one.

Michael

-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/

```
