# [PATCH 1/2] coccinelle: remove parentheses that become unnecessary

3 messages from 2017-10-01 to 2017-10-02. Participants: René Scharfe, Stefan Beller.
Thread: https://gitlist.dev/t/46873

## René Scharfe, 2017-10-01 15:12

Subject: [PATCH 1/2] coccinelle: remove parentheses that become unnecessary
Message-ID: <c4abb7ac-dafd-57f2-8b46-45d610d656c4@web.de>
URL: https://gitlist.dev/e/c4abb7ac-dafd-57f2-8b46-45d610d656c4%40web.de

```
Transformations that hide multiplications can end up with an pair of
parentheses that is no longer needed.  E.g. with a rule like this:

  @@
  expression E;
  @@
  - E * 2
  + double(E)

... we might get a patch like this:

  -	x = (a + b) * 2;
  +	x = double((a + b));

Add a pair of parentheses to the preimage side of such rules.
Coccinelle will generate patches that remove them if they are present,
and it will still match expressions that lack them.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
---
 contrib/coccinelle/array.cocci | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/contrib/coccinelle/array.cocci b/contrib/coccinelle/array.cocci
index c61d1ca8dc..01586821dc 100644
--- a/contrib/coccinelle/array.cocci
+++ b/contrib/coccinelle/array.cocci
@@ -4,7 +4,7 @@ T *dst;
 T *src;
 expression n;
 @@
-- memcpy(dst, src, n * sizeof(*dst));
+- memcpy(dst, src, (n) * sizeof(*dst));
 + COPY_ARRAY(dst, src, n);
 
 @@
@@ -13,7 +13,7 @@ T *dst;
 T *src;
 expression n;
 @@
-- memcpy(dst, src, n * sizeof(*src));
+- memcpy(dst, src, (n) * sizeof(*src));
 + COPY_ARRAY(dst, src, n);
 
 @@
@@ -22,7 +22,7 @@ T *dst;
 T *src;
 expression n;
 @@
-- memcpy(dst, src, n * sizeof(T));
+- memcpy(dst, src, (n) * sizeof(T));
 + COPY_ARRAY(dst, src, n);
 
 @@
@@ -47,7 +47,7 @@ type T;
 T *ptr;
 expression n;
 @@
-- ptr = xmalloc(n * sizeof(*ptr));
+- ptr = xmalloc((n) * sizeof(*ptr));
 + ALLOC_ARRAY(ptr, n);
 
 @@
@@ -55,5 +55,5 @@ type T;
 T *ptr;
 expression n;
 @@
-- ptr = xmalloc(n * sizeof(T));
+- ptr = xmalloc((n) * sizeof(T));
 + ALLOC_ARRAY(ptr, n);
-- 
2.14.2

```

## René Scharfe, 2017-10-01 15:14

Subject: [PATCH 2/2] run-command: use ALLOC_ARRAY
Message-ID: <6343155c-0986-06b0-8ced-146b23b8a137@web.de>
URL: https://gitlist.dev/e/6343155c-0986-06b0-8ced-146b23b8a137%40web.de
In-Reply-To: <c4abb7ac-dafd-57f2-8b46-45d610d656c4@web.de>

```
Use the macro ALLOC_ARRAY to allocate an array.  This is shorter and
eaasier, as it automatically infers the size of elements.

Patch generated with Coccinelle and contrib/coccinelle/array.cocci.

Signeg-off-by: Rene Scharfe <l.s.r@web.de>
---
 run-command.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/run-command.c b/run-command.c
index b5e6eb37c0..014b2165b5 100644
--- a/run-command.c
+++ b/run-command.c
@@ -452,7 +452,7 @@ static char **prep_childenv(const char *const *deltaenv)
 	}
 
 	/* Create an array of 'char *' to be used as the childenv */
-	childenv = xmalloc((env.nr + 1) * sizeof(char *));
+	ALLOC_ARRAY(childenv, env.nr + 1);
 	for (i = 0; i < env.nr; i++)
 		childenv[i] = env.items[i].util;
 	childenv[env.nr] = NULL;
-- 
2.14.2

```

## Stefan Beller, 2017-10-02 19:20

Subject: Re: [PATCH 2/2] run-command: use ALLOC_ARRAY
Message-ID: <CAGZ79kazU=JEnAAdzf-oGOMBDQaFZabxJzFOTYmhFLssrvY=BA@mail.gmail.com>
URL: https://gitlist.dev/e/CAGZ79kazU%3DJEnAAdzf-oGOMBDQaFZabxJzFOTYmhFLssrvY%3DBA%40mail.gmail.com
In-Reply-To: <6343155c-0986-06b0-8ced-146b23b8a137@web.de>

```
On Sun, Oct 1, 2017 at 8:14 AM, René Scharfe <l.s.r@web.de> wrote:
> Use the macro ALLOC_ARRAY to allocate an array.  This is shorter and
> eaasier, as it automatically infers the size of elements.

easier

Thanks,
Stefan

```
