=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: winevulkan: Avoid goto in wine_vkCreateDevice().
Alexandre Julliard
julliard at winehq.org
Thu Mar 29 19:13:30 CDT 2018
Module: wine
Branch: master
Commit: 8fd39cc2cea864f47d307bab839b65e0f2b2ae34
URL: https://source.winehq.org/git/wine.git/?a=commit;h=8fd39cc2cea864f47d307bab839b65e0f2b2ae34
Author: Józef Kucia <jkucia at codeweavers.com>
Date: Thu Mar 29 14:53:56 2018 +0200
winevulkan: Avoid goto in wine_vkCreateDevice().
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winevulkan/vulkan.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c
index 4c9874c..7a7a334 100644
--- a/dlls/winevulkan/vulkan.c
+++ b/dlls/winevulkan/vulkan.c
@@ -531,8 +531,9 @@ VkResult WINAPI wine_vkCreateDevice(VkPhysicalDevice phys_dev,
&create_info_host, NULL /* allocator */, &object->device);
if (res != VK_SUCCESS)
{
- ERR("Failed to create device\n");
- goto err;
+ ERR("Failed to create device.\n");
+ wine_vk_device_free(object);
+ return res;
}
object->phys_dev = phys_dev;
@@ -559,8 +560,8 @@ VkResult WINAPI wine_vkCreateDevice(VkPhysicalDevice phys_dev,
object->queues = heap_calloc(max_queue_families, sizeof(*object->queues));
if (!object->queues)
{
- res = VK_ERROR_OUT_OF_HOST_MEMORY;
- goto err;
+ wine_vk_device_free(object);
+ return VK_ERROR_OUT_OF_HOST_MEMORY;
}
for (i = 0; i < create_info_host.queueCreateInfoCount; i++)
@@ -573,18 +574,14 @@ VkResult WINAPI wine_vkCreateDevice(VkPhysicalDevice phys_dev,
object->queues[family_index] = wine_vk_device_alloc_queues(object, family_index, queue_count);
if (!object->queues[family_index])
{
- res = VK_ERROR_OUT_OF_HOST_MEMORY;
ERR("Failed to allocate memory for queues\n");
- goto err;
+ wine_vk_device_free(object);
+ return VK_ERROR_OUT_OF_HOST_MEMORY;
}
}
*device = object;
return VK_SUCCESS;
-
-err:
- wine_vk_device_free(object);
- return res;
}
VkResult WINAPI wine_vkCreateInstance(const VkInstanceCreateInfo *create_info,
More information about the wine-cvs
mailing list