diff options
author | Emil Velikov <[email protected]> | 2017-05-11 17:22:35 +0100 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2017-05-29 16:50:00 +0100 |
commit | c8d366bab29b36641172d8a2847ad9e7f90779e2 (patch) | |
tree | 9de44cf5ffe4648b6965c2655612d6ecb16c35e7 | |
parent | 7ec07beedf486d8ab901ea3e3e3a87768a051e44 (diff) |
egl/surfaceless: make use of the dri2_display_destroy() helper
Cc: Chad Versace <[email protected]>
Signed-off-by: Emil Velikov <[email protected]>
Reviewed-by: Gurchetan Singh <[email protected]>
Tested-by: Rob Herring <[email protected]>
-rw-r--r-- | src/egl/drivers/dri2/platform_surfaceless.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/egl/drivers/dri2/platform_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c index 7e887de09da..f001eda369c 100644 --- a/src/egl/drivers/dri2/platform_surfaceless.c +++ b/src/egl/drivers/dri2/platform_surfaceless.c @@ -279,6 +279,7 @@ dri2_initialize_surfaceless(_EGLDriver *drv, _EGLDisplay *disp) if (!dri2_dpy) return _eglError(EGL_BAD_ALLOC, "eglInitialize"); + dri2_dpy->fd = -1; disp->DriverData = (void *) dri2_dpy; const int limit = 64; @@ -301,25 +302,27 @@ dri2_initialize_surfaceless(_EGLDriver *drv, _EGLDisplay *disp) break; } free(dri2_dpy->driver_name); + dri2_dpy->driver_name = NULL; } close(dri2_dpy->fd); + dri2_dpy->fd = -1; } if (!driver_loaded) { err = "DRI2: failed to load driver"; - goto cleanup_display; + goto cleanup; } dri2_dpy->loader_extensions = image_loader_extensions; if (!dri2_create_screen(disp)) { err = "DRI2: failed to create screen"; - goto cleanup_driver; + goto cleanup; } if (!surfaceless_add_configs_for_visuals(drv, disp)) { err = "DRI2: failed to add configs"; - goto cleanup_screen; + goto cleanup; } /* Fill vtbl last to prevent accidentally calling virtual function during @@ -329,16 +332,7 @@ dri2_initialize_surfaceless(_EGLDriver *drv, _EGLDisplay *disp) return EGL_TRUE; -cleanup_screen: - dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen); - -cleanup_driver: - dlclose(dri2_dpy->driver); - free(dri2_dpy->driver_name); - close(dri2_dpy->fd); -cleanup_display: - free(dri2_dpy); - disp->DriverData = NULL; - +cleanup: + dri2_display_destroy(disp); return _eglError(EGL_NOT_INITIALIZED, err); } |