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

Re: [PATCH 1/2] code cleanup in sha1_file.c: xmalloc -> xcalloc

From
Brandon Casey <casey@nrlssc.navy.mil>
Date
Feb 10, 2009, 16:29 UTC
Message-ID
<EohcOnsg9EGsisIaM0B0iYUSHt-mz_fzqBCqg27mBU0yXXlkP9baOA@cipher.nrlssc.navy.mil>
In-Reply-To
<1234334612-24907-1-git-send-email-guanqun.lu@gmail.com>
Guanqun Lu wrote:
Show 23 quoted lines
> 'xmalloc' followed immediately by 'memset' is replaced
> with 'xcalloc', and a simple grep in this project seems
> to show that it's the only place.
> 
> Signed-off-by: Guanqun Lu <guanqun.lu@gmail.com>
> ---
>  sha1_file.c |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> diff --git a/sha1_file.c b/sha1_file.c
> index 8868b80..93e5fc0 100644
> --- a/sha1_file.c
> +++ b/sha1_file.c
> @@ -858,8 +858,7 @@ unsigned char* use_pack(struct packed_git *p,
>  
>  static struct packed_git *alloc_packed_git(int extra)
>  {
> -	struct packed_git *p = xmalloc(sizeof(*p) + extra);
> -	memset(p, 0, sizeof(*p));
> +	struct packed_git *p = xcalloc(1, sizeof(*p) + extra);
>  	p->pack_fd = -1;
>  	return p;
>  }

I previously scanned through and did this. I left this one as is because the extra part is about as large as the sizeof(*p) part. 69 and 72 bytes respectively on 32-bit. The extra part is always filled in immediately by callers. It's only called once for each pack so it's not performance critical, so maybe your patch is worth it since it is simpler?

-brandon
Previous: Guanqun LuNext: Junio C Hamano
Message 2 of 5 in “code cleanup in sha1_file.c: xmalloc -> xcalloc”
  1. 1/2 code cleanup in sha1_file.c: xmalloc -> xcallocGuanqun Lu, Feb 11, 2009
  2. Brandon CaseyFeb 10, 2009
  3. Junio C HamanoFeb 10, 2009
  4. 2/2 lockfile: set lk->fd = -1 in 'rollback_lock_file()'Guanqun Lu, Feb 11, 2009
  5. Junio C HamanoFeb 10, 2009

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.