From ccc2b0bc65b02d4582d52d133290c8cb046bce8f Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 13 Aug 2009 13:39:51 +0800 Subject: [PATCH] egl: _eglCloseDriver should be no-op. Move drv->API.Terminate call to eglTerminate. Remove _eglReleaseDisplayResource as drivers are doing it. Signed-off-by: Chia-I Wu --- src/egl/main/eglapi.c | 2 +- src/egl/main/egldisplay.c | 11 ++++++----- src/egl/main/egldriver.c | 2 -- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index a23b57120c4..29617b7afff 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -122,7 +122,7 @@ eglTerminate(EGLDisplay dpy) drv = disp->Driver; if (drv) { - /* TODO drv->API.Terminate should be called here */ + drv->API.Terminate(drv, disp); _eglCloseDriver(drv, disp); disp->Driver = NULL; } diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c index ba7e634c9d6..0693f258ded 100644 --- a/src/egl/main/egldisplay.c +++ b/src/egl/main/egldisplay.c @@ -40,7 +40,6 @@ _eglFiniDisplay(void) if (dpy->ContextList || dpy->SurfaceList) _eglLog(_EGL_DEBUG, "Display %u is destroyed with resources", key); - _eglCleanupDisplay(dpy); free(dpy); key = _eglHashNextEntry(_eglDisplayHash, key); @@ -237,11 +236,13 @@ _eglCleanupDisplay(_EGLDisplay *disp) { EGLint i; - for (i = 0; i < disp->NumConfigs; i++) { - free(disp->Configs[i]); + if (disp->Configs) { + for (i = 0; i < disp->NumConfigs; i++) + free(disp->Configs[i]); + free(disp->Configs); + disp->Configs = NULL; + disp->NumConfigs = 0; } - free(disp->Configs); - disp->Configs = NULL; /* XXX incomplete */ } diff --git a/src/egl/main/egldriver.c b/src/egl/main/egldriver.c index 0e6b2943859..a252a9aabb9 100644 --- a/src/egl/main/egldriver.c +++ b/src/egl/main/egldriver.c @@ -359,8 +359,6 @@ _eglOpenDriver(_EGLDisplay *dpy) EGLBoolean _eglCloseDriver(_EGLDriver *drv, _EGLDisplay *dpy) { - _eglReleaseDisplayResources(drv, dpy); - drv->API.Terminate(drv, dpy); return EGL_TRUE; } -- 2.30.2