diff --git a/wayland-client.c b/wayland-client.c index 71b4fee2..a3617470 100644 --- a/wayland-client.c +++ b/wayland-client.c @@ -345,25 +345,19 @@ handle_event(struct wl_display *display, if (id == 1) proxy = &display->proxy; else - proxy = (struct wl_proxy *) - wl_hash_table_lookup(display->objects, id); - - if (proxy != NULL) { - if (wl_list_empty(&proxy->listener_list)) { - printf("proxy found for object %d, opcode %d, but no listeners\n", - id, opcode); - } - - wl_list_for_each(listener, &proxy->listener_list, link) - wl_connection_demarshal(display->connection, - size, - display->objects, - listener->implementation[opcode], - listener->data, - &proxy->base, - &proxy->base.interface->events[opcode]); + proxy = wl_hash_table_lookup(display->objects, id); - } + if (proxy == NULL) + return; + + wl_list_for_each(listener, &proxy->listener_list, link) + wl_connection_demarshal(display->connection, + size, + display->objects, + listener->implementation[opcode], + listener->data, + &proxy->base, + &proxy->base.interface->events[opcode]); wl_connection_consume(display->connection, size); }