mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-21 14:42:25 +00:00
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:
parent
4c59f7d46a
commit
4377b55292
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user