malloc/malloc.c: Avoid calling sbrk unnecessarily with zero
Commit Message
Due to my bad review suggestion for the fix for BZ #15089 a check
was removed from systrim to prevent sbrk being called with a zero
argument. Add the check back to avoid this useless work.
ChangeLog:
2014-06-13 Will Newton <will.newton@linaro.org>
* malloc/malloc.c (systrim): If extra is zero then return
early.
---
malloc/malloc.c | 3 +++
1 file changed, 3 insertions(+)
Comments
On Fri, Jun 13, 2014 at 04:41:44PM +0100, Will Newton wrote:
> Due to my bad review suggestion for the fix for BZ #15089 a check
> was removed from systrim to prevent sbrk being called with a zero
> argument. Add the check back to avoid this useless work.
>
> ChangeLog:
>
> 2014-06-13 Will Newton <will.newton@linaro.org>
>
> * malloc/malloc.c (systrim): If extra is zero then return
> early.
Looks good to me.
Siddhesh
> ---
> malloc/malloc.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/malloc/malloc.c b/malloc/malloc.c
> index d8fd8b4..41fd76a 100644
> --- a/malloc/malloc.c
> +++ b/malloc/malloc.c
> @@ -2749,6 +2749,9 @@ systrim (size_t pad, mstate av)
> /* Release in pagesize units, keeping at least one page */
> extra = (top_area - pad) & ~(pagesz - 1);
>
> + if (extra == 0)
> + return 0;
> +
> /*
> Only proceed if end of memory is where we last set it.
> This avoids problems if there were foreign sbrk calls.
> --
> 1.9.3
>
@@ -2749,6 +2749,9 @@ systrim (size_t pad, mstate av)
/* Release in pagesize units, keeping at least one page */
extra = (top_area - pad) & ~(pagesz - 1);
+ if (extra == 0)
+ return 0;
+
/*
Only proceed if end of memory is where we last set it.
This avoids problems if there were foreign sbrk calls.