util/global: remove wl_display arg from wlr_global_destroy_safe

Since [1], we can get the wl_display directly from the wl_global.

[1]: 2b22160fb6
This commit is contained in:
Simon Ser 2021-06-29 19:12:50 +02:00 committed by Simon Zeni
parent 4c59f7d46a
commit 4377b55292
5 changed files with 6 additions and 7 deletions

View File

@ -9,7 +9,6 @@
* Globals that are created and destroyed on the fly need special handling to
* prevent race conditions with wl_registry. Use this function to destroy them.
*/
void wlr_global_destroy_safe(struct wl_global *global,
struct wl_display *display);
void wlr_global_destroy_safe(struct wl_global *global);
#endif

View File

@ -140,7 +140,7 @@ void wlr_output_destroy_global(struct wlr_output *output) {
wl_list_init(wl_resource_get_link(resource));
}
wlr_global_destroy_safe(output->global, output->display);
wlr_global_destroy_safe(output->global);
output->global = NULL;
}

View File

@ -191,7 +191,7 @@ void wlr_seat_destroy(struct wlr_seat *seat) {
}
}
wlr_global_destroy_safe(seat->global, seat->display);
wlr_global_destroy_safe(seat->global);
free(seat->pointer_state.default_grab);
free(seat->keyboard_state.default_grab);
free(seat->touch_state.default_grab);

View File

@ -127,7 +127,7 @@ static void drm_lease_device_v1_destroy(
}
wl_list_remove(&device->link);
wlr_global_destroy_safe(device->global, device->manager->display);
wlr_global_destroy_safe(device->global);
free(device);
}

View File

@ -14,8 +14,7 @@ static int destroy_global(void *_data) {
return 0;
}
void wlr_global_destroy_safe(struct wl_global *global,
struct wl_display *display) {
void wlr_global_destroy_safe(struct wl_global *global) {
// Don't destroy the global immediately. If the global has been created
// recently, clients might try to bind to it after we've destroyed it.
// Instead, remove the global so that clients stop seeing it and wait an
@ -25,6 +24,7 @@ void wlr_global_destroy_safe(struct wl_global *global,
wl_global_remove(global);
wl_global_set_user_data(global, NULL); // safety net
struct wl_display *display = wl_global_get_display(global);
struct wl_event_loop *event_loop = wl_display_get_event_loop(display);
struct destroy_global_data *data = calloc(1, sizeof(*data));
if (data == NULL) {