diff --git a/src/scanner.c b/src/scanner.c index d6e89698..a2d3368f 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -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); } diff --git a/src/wayland-shm.c b/src/wayland-shm.c index 0324168d..d58d85ed 100644 --- a/src/wayland-shm.c +++ b/src/wayland-shm.c @@ -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) {