diff options
author | 2017-02-25 11:30:03 +0100 | |
---|---|---|
committer | 2017-02-27 11:02:05 -0800 | |
commit | 3f64699ffde6cd2152db2106505a2310601a207f (patch) | |
tree | 4642e6ba0aaaa6d6ba8c639a91d91187794fbb0f | |
parent | Git 2.11.1 (diff) | |
download | tgif-3f64699ffde6cd2152db2106505a2310601a207f.tar.xz |
cocci: use ALLOC_ARRAY
Add a semantic patch for using ALLOC_ARRAY to allocate arrays and apply
the transformation on the current source tree. The macro checks for
multiplication overflow and infers the element size automatically; the
result is shorter and safer code.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | contrib/coccinelle/array.cocci | 16 | ||||
-rw-r--r-- | worktree.c | 2 |
2 files changed, 17 insertions, 1 deletions
diff --git a/contrib/coccinelle/array.cocci b/contrib/coccinelle/array.cocci index 2d7f25d99f..4ba98b7eaf 100644 --- a/contrib/coccinelle/array.cocci +++ b/contrib/coccinelle/array.cocci @@ -24,3 +24,19 @@ expression n; @@ - memcpy(dst, src, n * sizeof(T)); + COPY_ARRAY(dst, src, n); + +@@ +type T; +T *ptr; +expression n; +@@ +- ptr = xmalloc(n * sizeof(*ptr)); ++ ALLOC_ARRAY(ptr, n); + +@@ +type T; +T *ptr; +expression n; +@@ +- ptr = xmalloc(n * sizeof(T)); ++ ALLOC_ARRAY(ptr, n); diff --git a/worktree.c b/worktree.c index eb6121263b..b43160c003 100644 --- a/worktree.c +++ b/worktree.c @@ -175,7 +175,7 @@ struct worktree **get_worktrees(unsigned flags) struct dirent *d; int counter = 0, alloc = 2; - list = xmalloc(alloc * sizeof(struct worktree *)); + ALLOC_ARRAY(list, alloc); list[counter++] = get_main_worktree(); |