server: Pass struct wl_resource for object references
authorKristian Høgsberg <krh@bitplanet.net>
Sat, 27 Aug 2011 16:05:09 +0000 (12:05 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Sat, 27 Aug 2011 16:06:11 +0000 (12:06 -0400)
src/scanner.c
src/wayland-shm.c

index d6e8969..a2d3368 100644 (file)
@@ -526,7 +526,11 @@ emit_structs(struct wl_list *message_list, struct interface *interface)
                wl_list_for_each(a, &m->arg_list, link) {
                        printf(",\n%s", indent(n));
 
-                       emit_type(a);
+                       if (is_interface && a->type == OBJECT)
+                               printf("struct wl_resource *");
+                       else
+                               emit_type(a);
+
                        printf("%s", a->name);
                }
 
index 0324168..d58d85e 100644 (file)
@@ -115,10 +115,11 @@ wl_shm_buffer_init(struct wl_shm *shm, struct wl_client *client, uint32_t id,
 static void
 shm_create_buffer(struct wl_client *client, struct wl_resource *resource,
                  uint32_t id, int fd, int32_t width, int32_t height,
-                 uint32_t stride, struct wl_visual *visual)
+                 uint32_t stride, struct wl_resource *visual_resource)
 {
        struct wl_shm *shm = resource->data;
        struct wl_shm_buffer *buffer;
+       struct wl_visual *visual = visual_resource->data;
        void *data;
 
        if (!visual || visual->object.interface != &wl_visual_interface) {