diff options
| author | Kristian Høgsberg <krh@bitplanet.net> | 2010-09-07 10:58:19 -0400 |
|---|---|---|
| committer | Kristian Høgsberg <krh@bitplanet.net> | 2010-09-07 15:58:29 -0400 |
| commit | f1e7bd384c48a7c7531539ef4dedbe6b384a7609 (patch) | |
| tree | b59aa7aa640b2ff95c751d28827ebf2c399eca9f /connection.c | |
| parent | TODO editing (diff) | |
| download | wayland-f1e7bd384c48a7c7531539ef4dedbe6b384a7609.tar wayland-f1e7bd384c48a7c7531539ef4dedbe6b384a7609.tar.gz wayland-f1e7bd384c48a7c7531539ef4dedbe6b384a7609.tar.bz2 wayland-f1e7bd384c48a7c7531539ef4dedbe6b384a7609.tar.lz wayland-f1e7bd384c48a7c7531539ef4dedbe6b384a7609.tar.xz wayland-f1e7bd384c48a7c7531539ef4dedbe6b384a7609.tar.zst wayland-f1e7bd384c48a7c7531539ef4dedbe6b384a7609.zip | |
Add protocol debugging facility
Diffstat (limited to 'connection.c')
| -rw-r--r-- | connection.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/connection.c b/connection.c index 8d4f19f..42ec038 100644 --- a/connection.c +++ b/connection.c @@ -564,6 +564,49 @@ wl_closure_invoke(struct wl_closure *closure, } void +wl_closure_print(struct wl_closure *closure, struct wl_object *target) +{ + struct wl_object *object; + int i; + + fprintf(stderr, "%s(%d).%s(", + target->interface->name, target->id, + closure->message->name); + + for (i = 2; i < closure->count; i++) { + if (i > 2) + fprintf(stderr, ", "); + switch (closure->message->signature[i - 2]) { + case 'u': + fprintf(stderr, "%u", closure->values[i].uint32); + break; + case 'i': + fprintf(stderr, "%d", closure->values[i].uint32); + break; + case 's': + fprintf(stderr, "\"%s\"", closure->values[i].string); + break; + case 'o': + object = closure->values[i].object; + fprintf(stderr, "object %u", object ? object->id : 0); + break; + case 'n': + fprintf(stderr, "new id %u", + closure->values[i].uint32); + break; + case 'a': + fprintf(stderr, "array"); + break; + case 'h': + fprintf(stderr, "fd %d", closure->values[i].uint32); + break; + } + } + + fprintf(stderr, ")\n"); +} + +void wl_closure_destroy(struct wl_closure *closure) { int i; |
