On Sat, Jun 01, 2013 at 05:40:55PM -0500, Jason Ekstrand wrote:
> 
> Signed-off-by: Jason Ekstrand <ja...@jlekstrand.net>
> ---
>  src/wayland-server.c | 25 +++++++++++++++++++++++++
>  src/wayland-server.h | 40 ++++++++--------------------------------
>  2 files changed, 33 insertions(+), 32 deletions(-)
> 
> diff --git a/src/wayland-server.c b/src/wayland-server.c
> index 13b9dc8..3fe9dea 100644
> --- a/src/wayland-server.c
> +++ b/src/wayland-server.c
> @@ -102,6 +102,31 @@ struct wl_global {
>       struct wl_list link;
>  };
>  
> +struct wl_resource {
> +     struct wl_object object;
> +     wl_resource_destroy_func_t destroy;
> +     struct wl_list link;
> +     struct wl_signal destroy_signal;
> +     struct wl_client *client;
> +     void *data;
> +};
> +
> +static inline void
> +wl_resource_init(struct wl_resource *resource,
> +              const struct wl_interface *interface,
> +              const void *implementation, uint32_t id, void *data)
> +{
> +     resource->object.id = id;
> +     resource->object.interface = interface;
> +     resource->object.implementation = implementation;
> +
> +     wl_signal_init(&resource->destroy_signal);
> +
> +     resource->destroy = NULL;
> +     resource->client = NULL;
> +     resource->data = data;
> +}
> +
>  static int wl_debug = 0;
>  
>  static void
> diff --git a/src/wayland-server.h b/src/wayland-server.h
> index 677f998..912b22d 100644
> --- a/src/wayland-server.h
> +++ b/src/wayland-server.h
> @@ -181,39 +181,15 @@ wl_signal_emit(struct wl_signal *signal, void *data)
>  
>  typedef void (*wl_resource_destroy_func_t)(struct wl_resource *resource);
>  
> -/* The wl_resource structure has be deprecated as a transparent structure.
> - * While wl_resource will still exist, it will, in the future, be an opaque
> - * pointer.  Instead of accessing wl_resource directly, it should be created 
> by
> - * wl_client_add_object and wl_client_new_object and only accessed by the
> - * accessor functions provided.
> - */
> -struct wl_resource {
> -     struct wl_object object;
> -     wl_resource_destroy_func_t destroy;
> -     struct wl_list link;
> -     struct wl_signal destroy_signal;
> -     struct wl_client *client;
> -     void *data;
> -};
> -
> -static inline void
> -wl_resource_init(struct wl_resource *resource,
> -              const struct wl_interface *interface,
> -              const void *implementation, uint32_t id, void *data)
> -{
> -     resource->object.id = id;
> -     resource->object.interface = interface;
> -     resource->object.implementation = implementation;
> -
> -     wl_signal_init(&resource->destroy_signal);
> -
> -     resource->destroy = NULL;
> -     resource->client = NULL;
> -     resource->data = data;
> -}
> -
>  struct wl_buffer {
> -     struct wl_resource resource;
> +     struct {
> +             struct wl_object object;

Not applying this patch for now as you mention in 0/4.  However, I'd
like to also make wl_object private and just unroll the wl_object
struct here - is that possible?

Kristian

> +             wl_resource_destroy_func_t destroy;
> +             struct wl_list link;
> +             struct wl_signal destroy_signal;
> +             struct wl_client *client;
> +             void *data;
> +     } resource;
>       int32_t width, height;
>       uint32_t busy_count;
>  };
> -- 
> 1.8.1.4
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to