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

Reply via email to