Elvis, Unfortunately, this conflicts with the following commit: http://cgit.freedesktop.org/wayland/wayland/commit/?id=2fc248dc2c877d02694db40aad52180d71373d5a
Also, due to the changes in wl_closure the actual object is no longer even stored for arguments of type new_id, so this isn't even possible. --Jason Ekstrand On Wed, Feb 27, 2013 at 3:18 AM, Elvis Lee <[email protected]> wrote: > - print new object id on server side > - print new object name when wl_registry.bind > --- > src/connection.c | 10 +++++++--- > src/wayland-client.c | 4 ++-- > src/wayland-private.h | 2 +- > src/wayland-server.c | 6 +++--- > 4 files changed, 13 insertions(+), 9 deletions(-) > > diff --git a/src/connection.c b/src/connection.c > index 8707d40..1c5f52c 100644 > --- a/src/connection.c > +++ b/src/connection.c > @@ -65,6 +65,7 @@ union wl_value { > struct wl_object *object; > uint32_t new_id; > struct wl_array *array; > + uint32_t *object_id; > }; > > static void > @@ -976,7 +977,7 @@ wl_closure_queue(struct wl_closure *closure, struct > wl_connection *connection) > } > > void > -wl_closure_print(struct wl_closure *closure, struct wl_object *target, int > send) > +wl_closure_print(struct wl_closure *closure, struct wl_object *target, int > send, int server) > { > union wl_value *value; > int32_t si; > @@ -1028,11 +1029,14 @@ wl_closure_print(struct wl_closure *closure, struct > wl_object *target, int send) > fprintf(stderr, "new id %s@", > (closure->message->types[i - 2]) ? > closure->message->types[i - 2]->name : > - "[unknown]"); > + strcmp(target->interface->name, > "wl_registry") == 0 ? > + /* picking 's' from wl_registry.bind : > "usun" */ > + ((union wl_value *)closure->args[i - > 2])->string : > + "[unknown]"); > if (send && value->new_id != 0) > fprintf(stderr, "%u", value->new_id); > else if (!send && value->object != NULL) > - fprintf(stderr, "%u", value->object->id); > + fprintf(stderr, "%u", server ? > *value->object_id : value->object->id); > else > fprintf(stderr, "nil"); > break; > diff --git a/src/wayland-client.c b/src/wayland-client.c > index 785f4ee..271c402 100644 > --- a/src/wayland-client.c > +++ b/src/wayland-client.c > @@ -369,7 +369,7 @@ wl_proxy_marshal(struct wl_proxy *proxy, uint32_t opcode, > ...) > } > > if (wl_debug) > - wl_closure_print(closure, &proxy->object, true); > + wl_closure_print(closure, &proxy->object, true, false); > > if (wl_closure_send(closure, proxy->display->connection)) { > fprintf(stderr, "Error sending request: %m\n"); > @@ -834,7 +834,7 @@ dispatch_event(struct wl_display *display, struct > wl_event_queue *queue) > > if (proxy->object.implementation) { > if (wl_debug) > - wl_closure_print(closure, &proxy->object, false); > + wl_closure_print(closure, &proxy->object, false, > false); > > wl_closure_invoke(closure, &proxy->object, > proxy->object.implementation[opcode], > diff --git a/src/wayland-private.h b/src/wayland-private.h > index 4ec9896..1ed5e0a 100644 > --- a/src/wayland-private.h > +++ b/src/wayland-private.h > @@ -118,7 +118,7 @@ wl_closure_send(struct wl_closure *closure, struct > wl_connection *connection); > int > wl_closure_queue(struct wl_closure *closure, struct wl_connection > *connection); > void > -wl_closure_print(struct wl_closure *closure, struct wl_object *target, int > send); > +wl_closure_print(struct wl_closure *closure, struct wl_object *target, int > send, int server); > void > wl_closure_destroy(struct wl_closure *closure); > > diff --git a/src/wayland-server.c b/src/wayland-server.c > index dae7177..c3e7754 100644 > --- a/src/wayland-server.c > +++ b/src/wayland-server.c > @@ -132,7 +132,7 @@ wl_resource_post_event(struct wl_resource *resource, > uint32_t opcode, ...) > destroy_client, resource->client); > > if (wl_debug) > - wl_closure_print(closure, object, true); > + wl_closure_print(closure, object, true, true); > > wl_closure_destroy(closure); > } > @@ -158,7 +158,7 @@ wl_resource_queue_event(struct wl_resource *resource, > uint32_t opcode, ...) > destroy_client, resource->client); > > if (wl_debug) > - wl_closure_print(closure, object, true); > + wl_closure_print(closure, object, true, true); > > wl_closure_destroy(closure); > } > @@ -292,7 +292,7 @@ wl_client_connection_data(int fd, uint32_t mask, void > *data) > } > > if (wl_debug) > - wl_closure_print(closure, object, false); > + wl_closure_print(closure, object, false, true); > > deref_new_objects(closure); > > -- > 1.7.9.5 > > _______________________________________________ > wayland-devel mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
