wayland: Don't leak wl_drm global when unbinding display
authorAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Wed, 16 Oct 2013 12:04:03 +0000 (15:04 +0300)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 22 Oct 2013 21:57:03 +0000 (14:57 -0700)
src/egl/wayland/wayland-drm/wayland-drm.c

index 06bd18cf46120c3ad273154b861face0636d0e55..2f5acb217d1d4071f89c212d5506e347198de3d6 100644 (file)
@@ -41,6 +41,7 @@
 
 struct wl_drm {
        struct wl_display *display;
+       struct wl_global *wl_drm_global;
 
        void *user_data;
        char *device_name;
@@ -275,7 +276,9 @@ wayland_drm_init(struct wl_display *display, char *device_name,
 
         drm->buffer_interface.destroy = buffer_destroy;
 
-       wl_global_create(display, &wl_drm_interface, 2, drm, bind_drm);
+       drm->wl_drm_global =
+               wl_global_create(display, &wl_drm_interface, 2,
+                                drm, bind_drm);
 
        return drm;
 }
@@ -285,7 +288,7 @@ wayland_drm_uninit(struct wl_drm *drm)
 {
        free(drm->device_name);
 
-       /* FIXME: need wl_display_del_{object,global} */
+       wl_global_destroy(drm->wl_drm_global);
 
        free(drm);
 }