[PATCH weston] clients: Simplify memory allocation with xzalloc()

Marek Chalupa mchqwerty at gmail.com
Wed Jul 1 03:18:26 PDT 2015


Reviewed-by: Marek Chalupa <mchqwerty at gmail.com>

On Sat, Jun 20, 2015 at 1:12 AM, Bryce Harrington <bryce at osg.samsung.com>
wrote:

> It is redundant to check x*alloc's return value for null pointers, since
> they are guaranteed to either return non-NULL or terminate the program.
>
> In cases where we memset the malloc'd memory to 0, we can more
> efficiently use the xzalloc() routine.  zalloc looks for opportunities
> to return memory chunks that have already been zero'd out, so it can
> provide better performance.
>
> This patch addresses this warning, reported by Denis Denisov:
>
>   [clients/window.c:1164] -> [clients/window.c:1166]: (warning) Possible
>   null pointer dereference: surface - otherwise it is redundant to check
>   it against null.
>
>   [clients/window.c:4513] -> [clients/window.c:4514]: (warning) Possible
>   null pointer dereference: surface - otherwise it is redundant to check
>   it against null.
>
> Signed-off-by: Bryce Harrington <bryce at osg.samsung.com>
> ---
>  clients/window.c | 13 ++-----------
>  1 file changed, 2 insertions(+), 11 deletions(-)
>
> diff --git a/clients/window.c b/clients/window.c
> index ff4be8c..8e43e18 100644
> --- a/clients/window.c
> +++ b/clients/window.c
> @@ -1162,12 +1162,7 @@ shm_surface_create(struct display *display, struct
> wl_surface *wl_surface,
>         struct shm_surface *surface;
>         DBG_OBJ(wl_surface, "\n");
>
> -       surface = xmalloc(sizeof *surface);
> -       memset(surface, 0, sizeof *surface);
> -
> -       if (!surface)
> -               return NULL;
> -
> +       surface = xzalloc(sizeof *surface);
>         surface->base.prepare = shm_surface_prepare;
>         surface->base.swap = shm_surface_swap;
>         surface->base.acquire = shm_surface_acquire;
> @@ -4511,11 +4506,7 @@ surface_create(struct window *window)
>         struct display *display = window->display;
>         struct surface *surface;
>
> -       surface = xmalloc(sizeof *surface);
> -       memset(surface, 0, sizeof *surface);
> -       if (!surface)
> -               return NULL;
> -
> +       surface = xzalloc(sizeof *surface);
>         surface->window = window;
>         surface->surface =
> wl_compositor_create_surface(display->compositor);
>         surface->buffer_scale = 1;
> --
> 1.9.1
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20150701/a661548e/attachment-0001.html>


More information about the wayland-devel mailing list