x11: Remove destroy listener when X11 window is destroyed
authorKristian Høgsberg <krh@bitplanet.net>
Wed, 28 Dec 2011 03:47:51 +0000 (22:47 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 28 Dec 2011 03:47:51 +0000 (22:47 -0500)
compositor/xserver-launcher.c

index 9c5b227..1812472 100644 (file)
@@ -691,6 +691,7 @@ wlsc_wm_handle_create_notify(struct wlsc_wm *wm, xcb_generic_event_t *event)
                return;
        }
 
+       memset(window, 0, sizeof *window);
        window->id = create_notify->window;
        hash_table_insert(wm->window_hash, window->id, window);
 }
@@ -714,6 +715,8 @@ wlsc_wm_handle_destroy_notify(struct wlsc_wm *wm, xcb_generic_event_t *event)
 
        fprintf(stderr, "destroy window %p\n", window);
        hash_table_remove(wm->window_hash, window->id);
+       if (window->surface)
+               wl_list_remove(&window->surface_destroy_listener.link);
        free(window);
 }