mirror of
https://github.com/mpv-player/mpv
synced 2025-02-23 16:36:56 +00:00
wayland: free wayland_state on a false return
wm4 mentioned that the wayland autoprobe leaked. A simple oversight in the wayland_common code forgot to free the vo_wayland_state if vo_wayland_init returned false.
This commit is contained in:
parent
c669a434f3
commit
defc8f359c
@ -1043,11 +1043,15 @@ int vo_wayland_init(struct vo *vo)
|
||||
|
||||
wl_list_init(&wl->output_list);
|
||||
|
||||
if (!wl->display)
|
||||
if (!wl->display) {
|
||||
talloc_free(wl);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (create_input(wl))
|
||||
if (create_input(wl)) {
|
||||
talloc_free(wl);
|
||||
return false;
|
||||
}
|
||||
|
||||
wl->registry = wl_display_get_registry(wl->display);
|
||||
wl_registry_add_listener(wl->registry, ®istry_listener, wl);
|
||||
@ -1058,18 +1062,22 @@ int vo_wayland_init(struct vo *vo)
|
||||
if (!wl->wm_base) {
|
||||
MP_FATAL(wl, "Compositor doesn't support the required %s protocol!\n",
|
||||
xdg_wm_base_interface.name);
|
||||
talloc_free(wl);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!wl_list_length(&wl->output_list)) {
|
||||
MP_FATAL(wl, "No outputs found or compositor doesn't support %s (ver. 2)\n",
|
||||
wl_output_interface.name);
|
||||
talloc_free(wl);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Can't be initialized during registry due to multi-protocol dependence */
|
||||
if (create_xdg_surface(wl))
|
||||
if (create_xdg_surface(wl)) {
|
||||
talloc_free(wl);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (wl->dnd_devman) {
|
||||
wl->dnd_ddev = wl_data_device_manager_get_data_device(wl->dnd_devman, wl->seat);
|
||||
|
Loading…
Reference in New Issue
Block a user