From 9690759d0ccadd9527dee892eedc2f9d4baadf59 Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Tue, 26 Sep 2017 13:13:39 +0100 Subject: [PATCH] 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 Reviewed-by: Emil Velikov --- 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 171858bbcd9..5334384d2f5 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 c17198d6dd8..29ef7e854c7 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 1ede95ea6f4..5d5b7daa418 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 a8b0cab2b1a..fc27f1ffa3c 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 */ }; -- 2.30.2