On Wed, May 22, 2013 at 10:20:05AM +0300, ppaala...@gmail.com wrote:
> From: Pekka Paalanen <pekka.paala...@collabora.co.uk>
> 
> Apparently some compilers complain about set but not used variables
> 'available' and 'bufs', but I don't get the warning. Still, separate the
> debugging code from shm_surface_buffer_release(), so that we only
> compute 'bufs' when it is printed. This should fix the warnings.
> 
> The debugging code now prints the shm_surface buffer state before and
> after, instead of just after.

Thanks Pekka.

Kristian

> Signed-off-by: Pekka Paalanen <pekka.paala...@collabora.co.uk>
> ---
>  clients/window.c | 48 +++++++++++++++++++++++++++++++-----------------
>  1 file changed, 31 insertions(+), 17 deletions(-)
> 
> diff --git a/clients/window.c b/clients/window.c
> index 40c0ef4..627f1e8 100644
> --- a/clients/window.c
> +++ b/clients/window.c
> @@ -420,7 +420,9 @@ enum window_location {
>  
>  static const cairo_user_data_key_t shm_surface_data_key;
>  
> -#if 0
> +/* #define DEBUG */
> +
> +#ifdef DEBUG
>  
>  static void
>  debug_print(void *proxy, int line, const char *func, const char *fmt, ...)
> @@ -893,20 +895,43 @@ to_shm_surface(struct toysurface *base)
>  }
>  
>  static void
> +shm_surface_buffer_state_debug(struct shm_surface *surface, const char *msg)
> +{
> +#ifdef DEBUG
> +     struct shm_surface_leaf *leaf;
> +     char bufs[MAX_LEAVES + 1];
> +     int i;
> +
> +     for (i = 0; i < MAX_LEAVES; i++) {
> +             leaf = &surface->leaf[i];
> +
> +             if (leaf->busy)
> +                     bufs[i] = 'b';
> +             else if (leaf->cairo_surface)
> +                     bufs[i] = 'a';
> +             else
> +                     bufs[i] = ' ';
> +     }
> +
> +     bufs[MAX_LEAVES] = '\0';
> +     DBG_OBJ(surface->surface, "%s, leaves [%s]\n", msg, bufs);
> +#endif
> +}
> +
> +static void
>  shm_surface_buffer_release(void *data, struct wl_buffer *buffer)
>  {
>       struct shm_surface *surface = data;
>       struct shm_surface_leaf *leaf;
>       int i;
>       int free_found;
> -     int available = MAX_LEAVES;
> -     char bufs[MAX_LEAVES + 1];
> +
> +     shm_surface_buffer_state_debug(surface, "buffer_release before");
>  
>       for (i = 0; i < MAX_LEAVES; i++) {
>               leaf = &surface->leaf[i];
>               if (leaf->data && leaf->data->buffer == buffer) {
>                       leaf->busy = 0;
> -                     available = i;
>                       break;
>               }
>       }
> @@ -917,27 +942,16 @@ shm_surface_buffer_release(void *data, struct wl_buffer 
> *buffer)
>       for (i = 0; i < MAX_LEAVES; i++) {
>               leaf = &surface->leaf[i];
>  
> -             if (leaf->busy)
> -                     bufs[i] = 'b';
> -             else if (leaf->cairo_surface)
> -                     bufs[i] = 'a';
> -             else
> -                     bufs[i] = ' ';
> -
>               if (!leaf->cairo_surface || leaf->busy)
>                       continue;
>  
>               if (!free_found)
>                       free_found = 1;
> -             else {
> +             else
>                       shm_surface_leaf_release(leaf);
> -                     bufs[i] = '*';
> -             }
>       }
>  
> -     bufs[MAX_LEAVES] = '\0';
> -     DBG_OBJ(surface->surface, "leaf %d released, leaves [%s]\n",
> -             available, bufs);
> +     shm_surface_buffer_state_debug(surface, "buffer_release  after");
>  }
>  
>  static const struct wl_buffer_listener shm_surface_buffer_listener = {
> -- 
> 1.8.1.5
> 
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to