[Mesa-dev] [PATCH] egl_dri2: fix aux buffer leak in drm platform
mandeep.baines at gmail.com
mandeep.baines at gmail.com
Tue Apr 10 15:26:31 PDT 2012
From: Mandeep Singh Baines <msb at chromium.org>
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 at chromium.org>
Cc: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>
Cc: Benjamin Franzke <benjaminfranzke at googlemail.com>
Cc: Kristian Hogsberg <krh at bitplanet.net>
Cc: David Reveman <reveman at chromium.org>
Cc: Stephane Marchesin <marcheu at chromium.org>
---
src/egl/drivers/dri2/platform_drm.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c
index 18ecd17..54067ff 100644
--- a/src/egl/drivers/dri2/platform_drm.c
+++ b/src/egl/drivers/dri2/platform_drm.c
@@ -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;
--
1.7.3.4
More information about the mesa-dev
mailing list