Mesa (master): egl_dri2: do not leak dri2_dpy->driver_configs

Emil Velikov evelikov at kemper.freedesktop.org
Thu Nov 6 13:25:24 UTC 2014


Module: Mesa
Branch: master
Commit: ba0bb4227e5d32619e83765f5967a069766996af
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba0bb4227e5d32619e83765f5967a069766996af

Author: Emil Velikov <emil.l.velikov at gmail.com>
Date:   Thu Oct 23 17:27:01 2014 +0100

egl_dri2: do not leak dri2_dpy->driver_configs

Walk through the list and free each config, and finally free the list
itself. Freeing approx 20KiB of memory, according to valgrind.
Inspired by a similar patch by enpeng xu.

Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>

---

 src/egl/drivers/dri2/egl_dri2.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 20a7243..dcc3239 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -666,6 +666,7 @@ static EGLBoolean
 dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp)
 {
    struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
+   unsigned i;
 
    _eglReleaseDisplayResources(drv, disp);
    _eglCleanupDisplay(disp);
@@ -706,6 +707,9 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp)
       break;
    }
 
+   for (i = 0; dri2_dpy->driver_configs[i]; i++)
+      free((__DRIconfig *) dri2_dpy->driver_configs[i]);
+   free(dri2_dpy->driver_configs);
    free(dri2_dpy);
    disp->DriverData = NULL;
 




More information about the mesa-commit mailing list