git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] use xcalloc() to allocate zero-initialized memory

From
René Scharfe <l.s.r@web.de>
Date
Jul 19, 2014, 13:56 UTC
Message-ID
<53CA790A.20402@web.de>

Use xcalloc() instead of xmalloc() followed by memset() to allocate and zero out memory because it's shorter and avoids duplicating the function parameters.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
---
 builtin/clean.c      | 3 +--
 builtin/index-pack.c | 3 +--
 compat/mingw.c       | 3 +--
 pathspec.c           | 3 +--
 4 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/builtin/clean.c b/builtin/clean.c
index 27701d2..1032563 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -621,8 +621,7 @@ static int *list_and_choose(struct menu_opts *opts, struct menu_stuff *stuff)
 				nr += chosen[i];
 		}
 
-		result = xmalloc(sizeof(int) * (nr + 1));
-		memset(result, 0, sizeof(int) * (nr + 1));
+		result = xcalloc(nr + 1, sizeof(int));
 		for (i = 0; i < stuff->nr && j < nr; i++) {
 			if (chosen[i])
 				result[j++] = i;
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index fc40411..5568a5b 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -362,8 +362,7 @@ static void set_thread_data(struct thread_local *data)
 
 static struct base_data *alloc_base_data(void)
 {
-	struct base_data *base = xmalloc(sizeof(struct base_data));
-	memset(base, 0, sizeof(*base));
+	struct base_data *base = xcalloc(1, sizeof(struct base_data));
 	base->ref_last = -1;
 	base->ofs_last = -1;
 	return base;
diff --git a/compat/mingw.c b/compat/mingw.c
index 3baaa4d..ed4c61c 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -1230,8 +1230,7 @@ static int WSAAPI getaddrinfo_stub(const char *node, const char *service,
 	else
 		ai->ai_canonname = NULL;
 
-	sin = xmalloc(ai->ai_addrlen);
-	memset(sin, 0, ai->ai_addrlen);
+	sin = xcalloc(1, ai->ai_addrlen);
 	sin->sin_family = AF_INET;
 	/* Note: getaddrinfo is supposed to allow service to be a string,
 	 * which should be looked up using getservbyname. This is
diff --git a/pathspec.c b/pathspec.c
index 89f2c8f..9304ee3 100644
--- a/pathspec.c
+++ b/pathspec.c
@@ -389,8 +389,7 @@ void parse_pathspec(struct pathspec *pathspec,
 		if (!(flags & PATHSPEC_PREFER_CWD))
 			die("BUG: PATHSPEC_PREFER_CWD requires arguments");
 
-		pathspec->items = item = xmalloc(sizeof(*item));
-		memset(item, 0, sizeof(*item));
+		pathspec->items = item = xcalloc(1, sizeof(*item));
 		item->match = prefix;
 		item->original = prefix;
 		item->nowildcard_len = item->len = strlen(prefix);
-- 
2.0.2
Message 1 of 1 in “use xcalloc() to allocate zero-initialized memory”
  1. use xcalloc() to allocate zero-initialized memoryRené Scharfe, Jul 19, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.