egl_dri2: fix aux buffer leak in drm platform

Keep a reference to any newly allocated aux buffers to avoid
re-allocating for every st_framebuffer_validate() (i.e. leaking).

Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
This commit is contained in:
Mandeep Singh Baines 2012-04-10 14:48:14 -07:00 committed by Kristian Høgsberg
parent a27c7d80af
commit 0695cf68f5
1 changed files with 4 additions and 5 deletions

View File

@ -220,16 +220,15 @@ get_aux_bo(struct dri2_egl_surface *dri2_surf,
{
struct dri2_egl_display *dri2_dpy =
dri2_egl_display(dri2_surf->base.Resource.Display);
__DRIbuffer *b;
__DRIbuffer *b = dri2_surf->dri_buffers[attachment];
b = NULL;
if (dri2_surf->dri_buffers[attachment])
b = dri2_surf->dri_buffers[attachment];
if (b == NULL)
if (b == NULL) {
b = dri2_dpy->dri2->allocateBuffer(dri2_dpy->dri_screen,
attachment, format,
dri2_surf->base.Width,
dri2_surf->base.Height);
dri2_surf->dri_buffers[attachment] = b;
}
if (b == NULL)
return -1;