Move drv->API.Terminate call to eglTerminate. Remove
_eglReleaseDisplayResource as drivers are doing it.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
drv = disp->Driver;
if (drv) {
- /* TODO drv->API.Terminate should be called here */
+ drv->API.Terminate(drv, disp);
_eglCloseDriver(drv, disp);
disp->Driver = NULL;
}
if (dpy->ContextList || dpy->SurfaceList)
_eglLog(_EGL_DEBUG, "Display %u is destroyed with resources", key);
- _eglCleanupDisplay(dpy);
free(dpy);
key = _eglHashNextEntry(_eglDisplayHash, key);
{
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 */
}
EGLBoolean
_eglCloseDriver(_EGLDriver *drv, _EGLDisplay *dpy)
{
- _eglReleaseDisplayResources(drv, dpy);
- drv->API.Terminate(drv, dpy);
return EGL_TRUE;
}