Fix EGLImageKHR leak in wl_buffer destroy
authorKristian Høgsberg <krh@bitplanet.net>
Fri, 24 Sep 2010 14:01:18 +0000 (10:01 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 24 Sep 2010 14:01:18 +0000 (10:01 -0400)
compositor/compositor.h
compositor/drm.c

index 3122c0a..d175965 100644 (file)
@@ -121,6 +121,7 @@ struct wlsc_drm {
 
 struct wlsc_buffer {
        struct wl_buffer base;
+       struct wlsc_compositor *compositor;
        int32_t width, height;
        EGLImageKHR image;
        struct wl_visual *visual;
index 1d7bf9b..87863e8 100644 (file)
@@ -43,12 +43,9 @@ destroy_buffer(struct wl_resource *resource, struct wl_client *client)
 {
        struct wlsc_buffer *buffer =
                container_of(resource, struct wlsc_buffer, base.base);
+       struct wlsc_compositor *compositor = buffer->compositor;
 
-#if 0
-       /* FIXME: Need backlink to EGL display here */
-       eglDestroyImageKHR(ec->display, buffer->image);
-#endif
-
+       eglDestroyImageKHR(compositor->display, buffer->image);
        free(buffer);
 }
 
@@ -101,6 +98,7 @@ drm_create_buffer(struct wl_client *client, struct wl_drm *drm_base,
        attribs[3] = height;
        attribs[5] = stride / 4;
 
+       buffer->compositor = compositor;
        buffer->width = width;
        buffer->height = height;
        buffer->visual = visual;