mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
vulkan/wsi/wayland: Clean up some error handling paths
This gets rid of all the memory leaks reported by the WSI CTS tests. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Dave Airlie <airlied@redhat.com> Cc: "13.0" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
3b6abfc69a
commit
302f641d14
1 changed files with 8 additions and 0 deletions
|
|
@ -322,6 +322,8 @@ wsi_wl_get_display(struct wsi_device *wsi_device,
|
|||
pthread_mutex_unlock(&wsi->mutex);
|
||||
|
||||
struct wsi_wl_display *display = wsi_wl_display_create(wsi, wl_display);
|
||||
if (!display)
|
||||
return NULL;
|
||||
|
||||
pthread_mutex_lock(&wsi->mutex);
|
||||
|
||||
|
|
@ -398,6 +400,8 @@ wsi_wl_surface_get_formats(VkIcdSurfaceBase *icd_surface,
|
|||
VkIcdSurfaceWayland *surface = (VkIcdSurfaceWayland *)icd_surface;
|
||||
struct wsi_wl_display *display =
|
||||
wsi_wl_get_display(wsi_device, surface->display);
|
||||
if (!display)
|
||||
return VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
|
||||
uint32_t count = u_vector_length(&display->formats);
|
||||
|
||||
|
|
@ -827,6 +831,10 @@ wsi_wl_finish_wsi(struct wsi_device *wsi_device,
|
|||
(struct wsi_wayland *)wsi_device->wsi[VK_ICD_WSI_PLATFORM_WAYLAND];
|
||||
|
||||
if (wsi) {
|
||||
struct hash_entry *entry;
|
||||
hash_table_foreach(wsi->displays, entry)
|
||||
wsi_wl_display_destroy(wsi, entry->data);
|
||||
|
||||
_mesa_hash_table_destroy(wsi->displays, NULL);
|
||||
|
||||
pthread_mutex_destroy(&wsi->mutex);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue