From 6150d8d4bd64151522615c417f1fe51bff1cdd5f Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Mon, 9 Nov 2015 11:34:48 +0000 Subject: [PATCH] auxiliary/vl/drm: use a label for the error path ... just like every other place in gallium. Signed-off-by: Emil Velikov Acked-by: Alex Deucher --- src/gallium/auxiliary/vl/vl_winsys_drm.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/gallium/auxiliary/vl/vl_winsys_drm.c b/src/gallium/auxiliary/vl/vl_winsys_drm.c index 2ebf20c4bd3..b9efc9a901b 100644 --- a/src/gallium/auxiliary/vl/vl_winsys_drm.c +++ b/src/gallium/auxiliary/vl/vl_winsys_drm.c @@ -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 -- 2.30.2