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

@ -831,6 +831,14 @@ wl_connection_demarshal(struct wl_connection *connection,
return NULL;
}
bool
wl_object_is_zombie(struct wl_map *map, uint32_t id)
{
struct wl_object *object = wl_map_lookup(map, id);
return (object == WL_ZOMBIE_OBJECT);
}
int
wl_closure_lookup_objects(struct wl_closure *closure, struct wl_map *objects)
{
@ -852,7 +860,7 @@ wl_closure_lookup_objects(struct wl_closure *closure, struct wl_map *objects)
closure->args[i].o = NULL;
object = wl_map_lookup(objects, id);
if (object == WL_ZOMBIE_OBJECT) {
if (wl_object_is_zombie(objects, id)) {
/* references object we've already
* destroyed client side */
object = NULL;