From 9d6ae83fdc254cf92d2f02bcd33ff66e5a900a1c Mon Sep 17 00:00:00 2001 From: dudemanguy Date: Thu, 3 Oct 2019 08:19:12 -0500 Subject: [PATCH] Revert "wayland: free wayland_state on a false return" Dumb idea. The correct thing to do is to fix the preinit and context creation so that the uninit is correctly executed when probing fails (and then everything gets freed). This reverts commit defc8f359c5e4bb666e8ad1d4a097a8ac66cc1e2. --- video/out/wayland_common.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c index d015bb4882..a70377f3c6 100644 --- a/video/out/wayland_common.c +++ b/video/out/wayland_common.c @@ -1043,15 +1043,11 @@ int vo_wayland_init(struct vo *vo) wl_list_init(&wl->output_list); - if (!wl->display) { - talloc_free(wl); + if (!wl->display) return false; - } - if (create_input(wl)) { - talloc_free(wl); + if (create_input(wl)) return false; - } wl->registry = wl_display_get_registry(wl->display); wl_registry_add_listener(wl->registry, ®istry_listener, wl); @@ -1062,22 +1058,18 @@ 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)) { - talloc_free(wl); + if (create_xdg_surface(wl)) return false; - } if (wl->dnd_devman) { wl->dnd_ddev = wl_data_device_manager_get_data_device(wl->dnd_devman, wl->seat);