Mesa (master): egl: replace _egl_driver->Unload() callback with a simple free()

Eric Engeström eric_engestrom at kemper.freedesktop.org
Thu Oct 12 13:45:05 UTC 2017


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

Author: Eric Engestrom <eric at engestrom.ch>
Date:   Tue Sep 26 13:13:39 2017 +0100

egl: replace _egl_driver->Unload() callback with a simple free()

Bonus: fixes a memleak on haiku when unloading the driver

Signed-off-by: Eric Engestrom <eric at engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>

---

 src/egl/drivers/dri2/egl_dri2.c     | 9 ---------
 src/egl/drivers/haiku/egl_haiku.cpp | 9 ---------
 src/egl/main/egldriver.c            | 4 +---
 src/egl/main/egldriver.h            | 7 -------
 4 files changed, 1 insertion(+), 28 deletions(-)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 171858bbcd..5334384d2f 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -3178,14 +3178,6 @@ dri2_interop_export_object(_EGLDisplay *dpy, _EGLContext *ctx,
    return dri2_dpy->interop->export_object(dri2_ctx->dri_context, in, out);
 }
 
-static void
-dri2_unload(_EGLDriver *drv)
-{
-   struct dri2_egl_driver *dri2_drv = dri2_egl_driver(drv);
-
-   free(dri2_drv);
-}
-
 static EGLBoolean
 dri2_load(_EGLDriver *drv)
 {
@@ -3272,7 +3264,6 @@ _eglBuiltInDriver(void)
    dri2_drv->base.API.DupNativeFenceFDANDROID = dri2_dup_native_fence_fd;
 
    dri2_drv->base.Name = "DRI2";
-   dri2_drv->base.Unload = dri2_unload;
 
    return &dri2_drv->base;
 }
diff --git a/src/egl/drivers/haiku/egl_haiku.cpp b/src/egl/drivers/haiku/egl_haiku.cpp
index c17198d6dd..29ef7e854c 100644
--- a/src/egl/drivers/haiku/egl_haiku.cpp
+++ b/src/egl/drivers/haiku/egl_haiku.cpp
@@ -308,14 +308,6 @@ haiku_swap_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
 }
 
 
-extern "C"
-void
-haiku_unload(_EGLDriver* drv)
-{
-
-}
-
-
 /**
  * This is the main entrypoint into the driver, called by libEGL.
  * Create a new _EGLDriver object and init its dispatch table.
@@ -347,7 +339,6 @@ _eglBuiltInDriver(void)
 	driver->base.API.SwapBuffers = haiku_swap_buffers;
 
 	driver->base.Name = "Haiku";
-	driver->base.Unload = haiku_unload;
 
 	TRACE("API Calls defined\n");
 
diff --git a/src/egl/main/egldriver.c b/src/egl/main/egldriver.c
index 1ede95ea6f..5d5b7daa41 100644
--- a/src/egl/main/egldriver.c
+++ b/src/egl/main/egldriver.c
@@ -120,8 +120,6 @@ void
 _eglUnloadDrivers(void)
 {
    /* this is called at atexit time */
-   if (_eglDriver && _eglDriver->Unload)
-      _eglDriver->Unload(_eglDriver);
-
+   free(_eglDriver);
    _eglDriver = NULL;
 }
diff --git a/src/egl/main/egldriver.h b/src/egl/main/egldriver.h
index a8b0cab2b1..fc27f1ffa3 100644
--- a/src/egl/main/egldriver.h
+++ b/src/egl/main/egldriver.h
@@ -80,13 +80,6 @@ struct _egl_driver
 {
    const char *Name;  /**< name of this driver */
 
-   /**
-    * Release the driver resource.
-    *
-    * It is called before dlclose().
-    */
-   void (*Unload)(_EGLDriver *drv);
-
    _EGLAPI API;  /**< EGL API dispatch table */
 };
 




More information about the mesa-commit mailing list