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; + 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