[Mesa-dev] [PATCH 1/4] vulkan: Fix Wayland uninitialised registry
Daniel Stone
daniels at collabora.com
Thu May 4 09:33:03 UTC 2017
Untangle the exit cleanup paths so we don't try to use the registry
variable before it's been initialised.
Signed-off-by: Daniel Stone <daniels at collabora.com>
---
src/vulkan/wsi/wsi_common_wayland.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c
index 5613283d9d..9c246b8d5c 100644
--- a/src/vulkan/wsi/wsi_common_wayland.c
+++ b/src/vulkan/wsi/wsi_common_wayland.c
@@ -272,7 +272,7 @@ wsi_wl_display_create(struct wsi_wayland *wsi, struct wl_display *wl_display)
struct wl_registry *registry = wl_display_get_registry(wl_display);
if (!registry)
- return NULL;
+ goto fail;
wl_registry_add_listener(registry, ®istry_listener, display);
@@ -280,24 +280,25 @@ wsi_wl_display_create(struct wsi_wayland *wsi, struct wl_display *wl_display)
wl_display_roundtrip(wl_display);
if (!display->drm)
- goto fail;
+ goto fail_registry;
/* Round-rip to get wl_drm formats and capabilities */
wl_display_roundtrip(wl_display);
/* We need prime support */
if (!(display->capabilities & WL_DRM_CAPABILITY_PRIME))
- goto fail;
+ goto fail_registry;
/* We don't need this anymore */
wl_registry_destroy(registry);
return display;
-fail:
+fail_registry:
if (registry)
wl_registry_destroy(registry);
+fail:
wsi_wl_display_destroy(wsi, display);
return NULL;
}
--
2.12.2
More information about the mesa-dev
mailing list