Mesa (master): egl/surfaceless: make use of the dri2_display_destroy() helper

Emil Velikov evelikov at kemper.freedesktop.org
Mon May 29 15:52:26 UTC 2017


Module: Mesa
Branch: master
Commit: c8d366bab29b36641172d8a2847ad9e7f90779e2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c8d366bab29b36641172d8a2847ad9e7f90779e2

Author: Emil Velikov <emil.velikov at collabora.com>
Date:   Thu May 11 17:22:35 2017 +0100

egl/surfaceless: make use of the dri2_display_destroy() helper

Cc: Chad Versace <chadversary at chromium.org>
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
Reviewed-by: Gurchetan Singh <gurchetansingh at chromium.org>
Tested-by: Rob Herring <robh at kernel.org>

---

 src/egl/drivers/dri2/platform_surfaceless.c | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/src/egl/drivers/dri2/platform_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c
index 7e887de09d..f001eda369 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);
 }




More information about the mesa-commit mailing list