vk: Only finish wayland wsi if we created it
authorKristian Høgsberg Kristensen <krh@owl.jf.intel.com>
Mon, 4 Jan 2016 05:15:29 +0000 (21:15 -0800)
committerKristian Høgsberg Kristensen <krh@owl.jf.intel.com>
Mon, 4 Jan 2016 18:02:50 +0000 (10:02 -0800)
Failure during instance creation will leave instance->wayland_wsi
undefined. When we then try to clean that up we crash. Set
instance->wayland_wsi to NULL on failure and only clean it up if it's
non-NULL.

Fixes part of dEQP-VK.api.object_management.alloc_callback_fail.*

src/vulkan/anv_wsi_wayland.c

index 79453b594d8a506dd2ecdd6cfc0fd13040b7b62a..d51a96b9f11bc504f812c5c6cb2d5d7a3ca24421 100644 (file)
@@ -862,9 +862,11 @@ anv_wl_finish_wsi(struct anv_instance *instance)
 {
    struct wsi_wayland *wsi = instance->wayland_wsi;
 
-   _mesa_hash_table_destroy(wsi->displays, NULL);
+   if (wsi) {
+      _mesa_hash_table_destroy(wsi->displays, NULL);
 
-   pthread_mutex_destroy(&wsi->mutex);
+      pthread_mutex_destroy(&wsi->mutex);
 
-   anv_free(&instance->alloc, wsi);
+      anv_free(&instance->alloc, wsi);
+   }
 }