diff options
| author | Kirill Primak <vyivel@eclair.cafe> | 2024-01-25 20:48:57 +0300 |
|---|---|---|
| committer | Simon Ser <contact@emersion.fr> | 2024-02-08 17:18:28 +0000 |
| commit | 6a7284c63234c465a194b23ad28d527fa997bbcc (patch) | |
| tree | df1670856d7542905335399829370948ffa38ffb | |
| parent | Mitigate UAF crashes due to iteration over freed wl_resources (diff) | |
| download | wayland-6a7284c63234c465a194b23ad28d527fa997bbcc.tar wayland-6a7284c63234c465a194b23ad28d527fa997bbcc.tar.gz wayland-6a7284c63234c465a194b23ad28d527fa997bbcc.tar.bz2 wayland-6a7284c63234c465a194b23ad28d527fa997bbcc.tar.lz wayland-6a7284c63234c465a194b23ad28d527fa997bbcc.tar.xz wayland-6a7284c63234c465a194b23ad28d527fa997bbcc.tar.zst wayland-6a7284c63234c465a194b23ad28d527fa997bbcc.zip | |
event-loop: use wl_priv_signal for the destroy signal
Signed-off-by: Kirill Primak <vyivel@eclair.cafe>
| -rw-r--r-- | src/event-loop.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/event-loop.c b/src/event-loop.c index c5cc34a..45222f7 100644 --- a/src/event-loop.c +++ b/src/event-loop.c @@ -42,6 +42,7 @@ #include "wayland-util.h" #include "wayland-private.h" #include "wayland-server-core.h" +#include "wayland-server-private.h" #include "wayland-os.h" /** \cond INTERNAL */ @@ -73,7 +74,7 @@ struct wl_event_loop { struct wl_list idle_list; struct wl_list destroy_list; - struct wl_signal destroy_signal; + struct wl_priv_signal destroy_signal; struct wl_timer_heap timers; }; @@ -898,7 +899,7 @@ wl_event_loop_create(void) wl_list_init(&loop->idle_list); wl_list_init(&loop->destroy_list); - wl_signal_init(&loop->destroy_signal); + wl_priv_signal_init(&loop->destroy_signal); wl_timer_heap_init(&loop->timers, loop); @@ -921,7 +922,7 @@ wl_event_loop_create(void) WL_EXPORT void wl_event_loop_destroy(struct wl_event_loop *loop) { - wl_signal_emit(&loop->destroy_signal, loop); + wl_priv_signal_final_emit(&loop->destroy_signal, loop); wl_event_loop_process_destroy_list(loop); wl_timer_heap_release(&loop->timers); @@ -1147,7 +1148,7 @@ WL_EXPORT void wl_event_loop_add_destroy_listener(struct wl_event_loop *loop, struct wl_listener *listener) { - wl_signal_add(&loop->destroy_signal, listener); + wl_priv_signal_add(&loop->destroy_signal, listener); } /** Get the listener struct for the specified callback @@ -1163,5 +1164,5 @@ WL_EXPORT struct wl_listener * wl_event_loop_get_destroy_listener(struct wl_event_loop *loop, wl_notify_func_t notify) { - return wl_signal_get(&loop->destroy_signal, notify); + return wl_priv_signal_get(&loop->destroy_signal, notify); } |
