[PATCH] connection : correct debugging info in wl_closure_print
Elvis Lee
kwangwoong.lee at lge.com
Wed Feb 27 01:18:04 PST 2013
- 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
More information about the wayland-devel
mailing list