auxiliary/vl/drm: use a label for the error path
authorEmil Velikov <emil.l.velikov@gmail.com>
Mon, 9 Nov 2015 11:34:48 +0000 (11:34 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Fri, 20 Nov 2015 10:58:44 +0000 (10:58 +0000)
... just like every other place in gallium.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
src/gallium/auxiliary/vl/vl_winsys_drm.c

index 2ebf20c4bd3dc12eddee9fc4b7752d49134e304f..b9efc9a901bf43cfac0c619d569e3779446ffb00 100644 (file)
@@ -49,15 +49,11 @@ vl_drm_screen_create(int fd)
    if (pipe_loader_drm_probe_fd(&vscreen->dev, dup(fd))) {
       vscreen->pscreen =
          pipe_loader_create_screen(vscreen->dev, PIPE_SEARCH_DIR);
-      if (!vscreen->pscreen)
-         pipe_loader_release(&vscreen->dev, 1);
    }
 #endif
 
-   if (!vscreen->pscreen) {
-      FREE(vscreen);
-      return NULL;
-   }
+   if (!vscreen->pscreen)
+      goto error;
 
    vscreen->destroy = vl_drm_screen_destroy;
    vscreen->texture_from_drawable = NULL;
@@ -66,6 +62,14 @@ vl_drm_screen_create(int fd)
    vscreen->set_next_timestamp = NULL;
    vscreen->get_private = NULL;
    return vscreen;
+
+error:
+#if !GALLIUM_STATIC_TARGETS
+   if (vscreen->dev)
+      pipe_loader_release(&vscreen->dev, 1);
+#endif // !GALLIUM_STATIC_TARGETS
+   FREE(vscreen);
+   return NULL;
 }
 
 void