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>
This commit is contained in:
Józef Kucia 2018-09-13 11:26:00 +02:00 committed by Alexandre Julliard
parent abd775fb83
commit 0e8fc6e957

View File

@ -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;
}