mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-25 00:22: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
|
* 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.
|
* prevent race conditions with wl_registry. Use this function to destroy them.
|
||||||
*/
|
*/
|
||||||
void wlr_global_destroy_safe(struct wl_global *global,
|
void wlr_global_destroy_safe(struct wl_global *global);
|
||||||
struct wl_display *display);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -140,7 +140,7 @@ void wlr_output_destroy_global(struct wlr_output *output) {
|
|||||||
wl_list_init(wl_resource_get_link(resource));
|
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;
|
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->pointer_state.default_grab);
|
||||||
free(seat->keyboard_state.default_grab);
|
free(seat->keyboard_state.default_grab);
|
||||||
free(seat->touch_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);
|
wl_list_remove(&device->link);
|
||||||
wlr_global_destroy_safe(device->global, device->manager->display);
|
wlr_global_destroy_safe(device->global);
|
||||||
|
|
||||||
free(device);
|
free(device);
|
||||||
}
|
}
|
||||||
|
@ -14,8 +14,7 @@ static int destroy_global(void *_data) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wlr_global_destroy_safe(struct wl_global *global,
|
void wlr_global_destroy_safe(struct wl_global *global) {
|
||||||
struct wl_display *display) {
|
|
||||||
// Don't destroy the global immediately. If the global has been created
|
// 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.
|
// 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
|
// 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_remove(global);
|
||||||
wl_global_set_user_data(global, NULL); // safety net
|
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 wl_event_loop *event_loop = wl_display_get_event_loop(display);
|
||||||
struct destroy_global_data *data = calloc(1, sizeof(*data));
|
struct destroy_global_data *data = calloc(1, sizeof(*data));
|
||||||
if (data == NULL) {
|
if (data == NULL) {
|
||||||
|
Loading…
Reference in New Issue
Block a user