Set the view to NULL when unmapping an X11 window
authorDima Ryazanov <dima@gmail.com>
Fri, 15 Nov 2013 10:01:18 +0000 (02:01 -0800)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 3 Dec 2013 23:54:44 +0000 (15:54 -0800)
Fixes a crash caused by accessing a deleted view in weston_wm_window_schedule_repaint. It can be easily reproduced by switching between menus in Firefox.

Signed-off-by: Dima Ryazanov <dima@gmail.com>
src/xwayland/window-manager.c

index b2776a0..5ee9480 100644 (file)
@@ -902,6 +902,7 @@ weston_wm_handle_unmap_notify(struct weston_wm *wm, xcb_generic_event_t *event)
                wl_list_remove(&window->surface_destroy_listener.link);
        window->surface = NULL;
        window->shsurf = NULL;
+       window->view = NULL;
        xcb_unmap_window(wm->conn, window->frame_id);
 }
 
@@ -2028,6 +2029,7 @@ surface_destroy(struct wl_listener *listener, void *data)
        Don't try to use it later. */
        window->shsurf = NULL;
        window->surface = NULL;
+       window->view = NULL;
 }
 
 static struct weston_wm_window *