client: Add wl_object_is_zombie() helper function

Add a helper function which determines whether or not an object is a
zombie.

[daniels: Extracted from Derek's bespoke-zombie patch as an intermediate
          step.]

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
Derek Foreman 2017-12-28 15:15:46 +00:00 committed by Daniel Stone
parent b4cf9e7d5e
commit 69fab4fffc
3 changed files with 14 additions and 3 deletions

View file

@ -837,7 +837,7 @@ display_handle_delete_id(void *data, struct wl_display *display, uint32_t id)
if (!proxy)
wl_log("error: received delete_id for unknown id (%u)\n", id);
if (proxy && proxy != WL_ZOMBIE_OBJECT)
if (proxy && !wl_object_is_zombie(&display->objects, id))
proxy->flags |= WL_PROXY_FLAG_ID_DELETED;
else
wl_map_remove(&display->objects, id);
@ -1253,7 +1253,7 @@ queue_event(struct wl_display *display, int len)
return 0;
proxy = wl_map_lookup(&display->objects, id);
if (!proxy || proxy == WL_ZOMBIE_OBJECT) {
if (!proxy || wl_object_is_zombie(&display->objects, id)) {
wl_connection_consume(display->connection, size);
return size;
}