From: Kristian Høgsberg Date: Wed, 19 Jan 2011 19:11:48 +0000 (-0500) Subject: Put the fd in the closure so debugging can print it X-Git-Tag: upstream/0.1.8~3626 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5029a13283d5b9d4ec25302a9c3841e426dcb3c0;p=profile%2Fivi%2Fweston-ivi-shell.git Put the fd in the closure so debugging can print it --- diff --git a/wayland/connection.c b/wayland/connection.c index 0705c19..73715e2 100644 --- a/wayland/connection.c +++ b/wayland/connection.c @@ -369,7 +369,7 @@ wl_connection_vmarshal(struct wl_connection *connection, struct wl_array **arrayp, *array; const char **sp, *s; char *extra; - int i, count, fd, extra_size; + int i, count, fd, extra_size, *fd_ptr; extra_size = wl_message_size_extra(message); count = strlen(message->signature) + 2; @@ -449,12 +449,18 @@ wl_connection_vmarshal(struct wl_connection *connection, break; case 'h': + closure->types[i] = &ffi_type_sint; + closure->args[i] = extra; + fd_ptr = (int *) extra; + extra += sizeof *fd_ptr; + fd = va_arg(ap, int); dup_fd = dup(fd); if (dup_fd < 0) { fprintf(stderr, "dup failed: %m"); abort(); } + *fd_ptr = dup_fd; wl_buffer_put(&connection->fds_out, &dup_fd, sizeof dup_fd); break;