From 7dd7cfcf953a01f13c378bd110964ce1c4dc82a6 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Thu, 12 Jan 2023 21:28:03 +0100 Subject: Wayland Fix "Error "heap-use-after-free" when scaling twice" (#650) --- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index a62bce6d2..2edc4a66e 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -477,9 +477,10 @@ void Fl_Wayland_Window_Driver::hide() { wl_list_remove(&window_output->link); free(window_output); } + if (Fl_Wayland_Window_Driver::wld_window == wld_win) Fl_Wayland_Window_Driver::wld_window = NULL; //fprintf(stderr, "After hide: sub=%p frame=%p xdg=%p top=%p pop=%p surf=%p\n", wld_win->subsurface, wld_win->frame, wld_win->xdg_surface, wld_win->xdg_toplevel, wld_win->xdg_popup, wld_win->wl_surface); + free(wld_win); } - free(wld_win); if (pWindow->as_gl_window() && in_flush) { ip->xid = 0; ip->next = NULL; // to end the loop in calling Fl::flush() -- cgit v1.2.3