Module: vkd3d Branch: master Commit: 0e8fc6e957faab365b3f021b94619dd3ca7bdcaf URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=0e8fc6e957faab365b3f021b...
Author: Józef Kucia jkucia@codeweavers.com Date: Thu Sep 13 11:26:00 2018 +0200
vkd3d: Fix leaks if d3d12_device_init_pipeline_cache() fails.
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
libs/vkd3d/device.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index c1db7d3..b57e3ce 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -1280,6 +1280,14 @@ static HRESULT d3d12_device_init_pipeline_cache(struct d3d12_device *device) VkResult vr; int rc;
+ if ((rc = pthread_mutex_init(&device->pipeline_cache_mutex, NULL))) + { + ERR("Failed to initialize mutex, error %d.\n", rc); + return E_FAIL; + } + + rb_init(&device->pipeline_cache, compare_pipeline_cache_entry); + cache_info.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO; cache_info.pNext = NULL; cache_info.flags = 0; @@ -1292,14 +1300,6 @@ static HRESULT d3d12_device_init_pipeline_cache(struct d3d12_device *device) device->vk_pipeline_cache = VK_NULL_HANDLE; }
- rb_init(&device->pipeline_cache, compare_pipeline_cache_entry); - - if ((rc = pthread_mutex_init(&device->pipeline_cache_mutex, NULL))) - { - ERR("Failed to initialize mutex, error %d.\n", rc); - return E_FAIL; - } - return S_OK; }