aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/util/global.h3
-rw-r--r--types/output/output.c2
-rw-r--r--types/seat/wlr_seat.c2
-rw-r--r--types/wlr_drm_lease_v1.c2
-rw-r--r--util/global.c4
5 files changed, 6 insertions, 7 deletions
diff --git a/include/util/global.h b/include/util/global.h
index ea0fda83..1c979ab1 100644
--- a/include/util/global.h
+++ b/include/util/global.h
@@ -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
diff --git a/types/output/output.c b/types/output/output.c
index 900cfda6..85590ab6 100644
--- a/types/output/output.c
+++ b/types/output/output.c
@@ -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;
}
diff --git a/types/seat/wlr_seat.c b/types/seat/wlr_seat.c
index f9314744..4933133c 100644
--- a/types/seat/wlr_seat.c
+++ b/types/seat/wlr_seat.c
@@ -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);
diff --git a/types/wlr_drm_lease_v1.c b/types/wlr_drm_lease_v1.c
index 7063e0d3..7cb9974d 100644
--- a/types/wlr_drm_lease_v1.c
+++ b/types/wlr_drm_lease_v1.c
@@ -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);
}
diff --git a/util/global.c b/util/global.c
index a0d84ed3..fa99a994 100644
--- a/util/global.c
+++ b/util/global.c
@@ -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) {