Rémi Bernon (@rbernon) commented about dlls/winewayland.drv/vulkan.c:
if (res != VK_SUCCESS) { ERR("Failed to create vulkan wayland swapchain, res=%d\n", res);
wine_vk_swapchain_destroy(wine_vk_swapchain);
However that means that the swapchain should be `free`-d here instead.
Alternatively I think it's better to unlink objects outside of their destructors, and only where it is appropriate (in this case in vkDestroySwapchain).