diff options
author | Chia-I Wu <olvaffe@gmail.com> | 2009-08-13 13:39:51 +0800 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2009-08-18 08:49:22 -0600 |
commit | ccc2b0bc65b02d4582d52d133290c8cb046bce8f (patch) | |
tree | 8e5ca6fa9354e0cdc7ed6112651c8afefc386f92 /src/egl | |
parent | 5a2c9372a0d9fa1efd924f9386a4e3df47c17d0e (diff) |
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 <olvaffe@gmail.com>
Diffstat (limited to 'src/egl')
-rw-r--r-- | src/egl/main/eglapi.c | 2 | ||||
-rw-r--r-- | src/egl/main/egldisplay.c | 11 | ||||
-rw-r--r-- | 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 a23b57120c..29617b7aff 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 ba7e634c9d..0693f258de 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 0e6b294385..a252a9aabb 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; } |