server: add wl_global_set_user_data
authorSimon Ser <contact@emersion.fr>
Mon, 22 Jul 2019 16:41:22 +0000 (19:41 +0300)
committerPekka Paalanen <pq@iki.fi>
Fri, 27 Sep 2019 09:14:52 +0000 (09:14 +0000)
commitd5055ad913f4913c1bb1c17cef55049e30c191ad
tree00271f93b84f2a1acdabdee1f2e56a2336349717
parent766edf0243b1cd56c4a0d8a4ea03dd17ea49a119
server: add wl_global_set_user_data

When implementing a workaround for [1], one needs to accept a global to be
bound even though it has become stale.

Often, a global's user data is free'd when the global needs to be destroyed.
Being able to set the global's user data (e.g. to NULL) can help preventing a
use-after-free.

(The alternative is to make the compositor responsible for keeping track of
stale user data objects via e.g. refcounting.)

[1]: https://gitlab.freedesktop.org/wayland/wayland/issues/10

Signed-off-by: Simon Ser <contact@emersion.fr>
src/wayland-server-core.h
src/wayland-server.c