aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wayland-client.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/wayland-client.c b/src/wayland-client.c
index 21ef5b0..55838cd 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -258,7 +258,6 @@ wl_event_queue_release(struct wl_event_queue *queue)
{
struct wl_closure *closure;
struct wl_proxy *proxy;
- bool proxy_destroyed;
while (!wl_list_empty(&queue->event_list)) {
closure = container_of(queue->event_list.next,
@@ -268,10 +267,8 @@ wl_event_queue_release(struct wl_event_queue *queue)
decrease_closure_args_refcount(closure);
proxy = closure->proxy;
- proxy_destroyed = !!(proxy->flags & WL_PROXY_FLAG_DESTROYED);
-
proxy->refcount--;
- if (proxy_destroyed && !proxy->refcount)
+ if (!proxy->refcount)
free(proxy);
wl_closure_destroy(closure);
@@ -1310,10 +1307,10 @@ dispatch_event(struct wl_display *display, struct wl_event_queue *queue)
proxy_destroyed = !!(proxy->flags & WL_PROXY_FLAG_DESTROYED);
proxy->refcount--;
- if (proxy_destroyed) {
- if (!proxy->refcount)
- free(proxy);
+ if (!proxy->refcount)
+ free(proxy);
+ if (proxy_destroyed) {
wl_closure_destroy(closure);
return;
}