Re: [PATCH 2/2] Don't allocate another header when merging chunks

Jeff Johnston <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <CAOox84swjuY9zULM-HfPewoZFJVahmdPW87JVs8zY7W04Th-3Q@mail.gmail.com>
Patch applied. Thanks.

-- Jeff J.

On Tue, Aug 30, 2022 at 9:57 AM Torbjörn SVENSSON <
[email protected]> wrote:

> In the nano version of malloc, when the last chunk is to be extended,
> there is no need to acount for the header again as it's already taken
> into account in the overall "alloc_size" at the beginning of the
> function.
>
> Contributed by STMicroelectronics
>
> Signed-off-by: Torbjörn SVENSSON <[email protected]>
> ---
>  newlib/libc/stdlib/nano-mallocr.c | 4 ----
>  1 file changed, 4 deletions(-)
>
> diff --git a/newlib/libc/stdlib/nano-mallocr.c
> b/newlib/libc/stdlib/nano-mallocr.c
> index 43eb20e07..b2273ba60 100644
> --- a/newlib/libc/stdlib/nano-mallocr.c
> +++ b/newlib/libc/stdlib/nano-mallocr.c
> @@ -328,10 +328,6 @@ void * nano_malloc(RARG malloc_size_t s)
>                 /* The last free item has the heap end as neighbour.
>                  * Let's ask for a smaller amount and merge */
>                 alloc_size -= p->size;
> -               alloc_size = ALIGN_SIZE(alloc_size, CHUNK_ALIGN); /* size
> of aligned data load */
> -               alloc_size += MALLOC_PADDING; /* padding */
> -               alloc_size += CHUNK_OFFSET; /* size of chunk head */
> -               alloc_size = MAX(alloc_size, MALLOC_MINCHUNK);
>
>                 if (sbrk_aligned(RCALL alloc_size) != (void *)-1)
>                 {
> --
> 2.25.1
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.