Commit 18495347 authored by Kristian Høgsberg's avatar Kristian Høgsberg
Browse files

client: Discard proxies with no implementation at dispatch time

We need to queue up events even if a proxy doesn't have an implementation
(listener).  In case of server created new objects, the client haven't
had a chance to set the listener when the first events to the new object
come in.  So now we always queue up events and discard them at
dispatch time if they don't have a listener at that point.
parent d4cc1cd0
......@@ -491,7 +491,7 @@ queue_event(struct wl_display *display, int len)
if (proxy == WL_ZOMBIE_OBJECT) {
wl_connection_consume(display->connection, size);
return size;
} else if (proxy == NULL || proxy->object.implementation == NULL) {
} else if (proxy == NULL) {
wl_connection_consume(display->connection, size);
return size;
}
......@@ -536,7 +536,8 @@ dispatch_event(struct wl_display *display, struct wl_event_queue *queue)
pthread_mutex_unlock(&display->mutex);
if (proxy != WL_ZOMBIE_OBJECT && ret == 0) {
if (proxy != WL_ZOMBIE_OBJECT &&
proxy->object.implementation && ret == 0) {
if (wl_debug)
wl_closure_print(closure, &proxy->object, false);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment