This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v1.1] Expand MALLOC_COPY and MALLOC_ZERO to memcpy/memset.


On Mon, Dec 09, 2013 at 08:02:10PM +0100, OndÅej BÃlka wrote:
> On Mon, Dec 09, 2013 at 07:39:40PM +0100, OndÅej BÃlka wrote:
> > Hi,
> > 
> > Continuing cleaning malloc we also expand MALLOC_COPY and MALLOC_ZERO
> > to their bodies.
> > 
> After running check expansion in hook.c is also needed.
> 
> 	* malloc/malloc.c (MALLOC_COPY, MALLOC_ZERO): Delete.
> 	(__malloc_assert, __libc_realloc, __libc_calloc,
> 	_int_realloc): Expand MALLOC_COPY and MALLOC_ZERO to memcpy and
> 	memset.
> 	* malloc/hooks.c: Likewise.

	* malloc/hooks.c (realloc_check): Likewise.

Otherwise the change looks OK.

Siddhesh

> 
> 
> diff --git a/malloc/hooks.c b/malloc/hooks.c
> index 198a6f7..8880b5e 100644
> --- a/malloc/hooks.c
> +++ b/malloc/hooks.c
> @@ -330,7 +330,7 @@ realloc_check(void* oldmem, size_t bytes, const void *caller)
>  	if (top_check() >= 0)
>  	  newmem = _int_malloc(&main_arena, bytes+1);
>  	if (newmem) {
> -	  MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ);
> +	  memcpy(newmem, oldmem, oldsize - 2*SIZE_SZ);
>  	  munmap_chunk(oldp);
>  	}
>        }
> diff --git a/malloc/malloc.c b/malloc/malloc.c
> index 622a606..393316e 100644
> --- a/malloc/malloc.c
> +++ b/malloc/malloc.c
> @@ -1029,19 +1029,6 @@ static void*   malloc_atfork(size_t sz, const void *caller);
>  static void      free_atfork(void* mem, const void *caller);
>  #endif
>  
> -
> -/* ------------- Optional versions of memcopy ---------------- */
> -
> -
> -/*
> -  Note: memcpy is ONLY invoked with non-overlapping regions,
> -  so the (usually slower) memmove is not needed.
> -*/
> -
> -#define MALLOC_COPY(dest, src, nbytes)  memcpy(dest, src, nbytes)
> -#define MALLOC_ZERO(dest, nbytes)       memset(dest, 0,   nbytes)
> -
> -
>  /* ------------------ MMAP support ------------------  */
>  
>  
> @@ -2921,7 +2908,7 @@ __libc_realloc(void* oldmem, size_t bytes)
>      /* Must alloc, copy, free. */
>      newmem = __libc_malloc(bytes);
>      if (newmem == 0) return 0; /* propagate failure */
> -    MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ);
> +    memcpy(newmem, oldmem, oldsize - 2*SIZE_SZ);
>      munmap_chunk(oldp);
>      return newmem;
>    }
> @@ -2957,7 +2944,7 @@ __libc_realloc(void* oldmem, size_t bytes)
>        newp = __libc_malloc(bytes);
>        if (newp != NULL)
>  	{
> -	  MALLOC_COPY (newp, oldmem, oldsize - SIZE_SZ);
> +	  memcpy (newp, oldmem, oldsize - SIZE_SZ);
>  	  _int_free(ar_ptr, oldp, 0);
>  	}
>      }
> @@ -3145,7 +3132,7 @@ __libc_calloc(size_t n, size_t elem_size)
>    if (chunk_is_mmapped (p))
>      {
>        if (__builtin_expect (perturb_byte, 0))
> -	return MALLOC_ZERO (mem, sz);
> +	return memset (mem, 0, sz);
>        return mem;
>      }
>  
> @@ -3167,7 +3154,7 @@ __libc_calloc(size_t n, size_t elem_size)
>    assert(nclears >= 3);
>  
>    if (nclears > 9)
> -    return MALLOC_ZERO(d, clearsize);
> +    return memset(d, 0, clearsize);
>  
>    else {
>      *(d+0) = 0;
> @@ -4171,7 +4158,7 @@ _int_realloc(mstate av, mchunkptr oldp, size_t oldsize,
>  	assert(ncopies >= 3);
>  
>  	if (ncopies > 9)
> -	  MALLOC_COPY(d, s, copysize);
> +	  memcpy(d, s, copysize);
>  
>  	else {
>  	  *(d+0) = *(s+0);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]