Get rid of wl_client_add_surface() special case
diff --git a/compositor.c b/compositor.c
index 32f9d11..1959ed2 100644
--- a/compositor.c
+++ b/compositor.c
@@ -635,8 +635,14 @@
wl_list_insert(ec->surface_list.prev, &surface->link);
surface->base.base.destroy = destroy_surface;
- wl_client_add_surface(client, &surface->base,
- &surface_interface, id);
+
+ surface->base.base.base.id = id;
+ surface->base.base.base.interface = &wl_surface_interface;
+ surface->base.base.base.implementation =
+ (void (**)(void)) &surface_interface;
+ surface->base.client = client;
+
+ wl_client_add_resource(client, &surface->base.base);
}
static void