diff options
| author | Mark Young <marky@lunarg.com> | 2017-03-03 15:28:57 -0700 |
|---|---|---|
| committer | Mark Young <marky@lunarg.com> | 2017-03-03 15:30:14 -0700 |
| commit | 127342275cb9ab2ab74ced48a0de4846a0b40792 (patch) | |
| tree | ccde8e3133fd344a1a52108a9e3d52d25f71c3f3 /loader | |
| parent | 529c1bff11c0cb083b94a630473cad0963139da5 (diff) | |
| download | usermoji-127342275cb9ab2ab74ced48a0de4846a0b40792.tar.xz | |
loader: Fix several leaks
Fix several leaks caught by Valgrind. This change should fix all
memory leaks caught by David Hubbard in pull-request #811.
Change-Id: I55d7f3a6abbc32fde182702c4b9cf1041107c6df
Diffstat (limited to 'loader')
| -rw-r--r-- | loader/trampoline.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/loader/trampoline.c b/loader/trampoline.c index 2550cbf5..f2e72530 100644 --- a/loader/trampoline.c +++ b/loader/trampoline.c @@ -199,6 +199,7 @@ out: LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(uint32_t *pPropertyCount, VkLayerProperties *pProperties) { + VkResult result = VK_SUCCESS; struct loader_layer_list instance_layer_list; tls_instance = NULL; @@ -212,8 +213,7 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties( if (pProperties == NULL) { *pPropertyCount = instance_layer_list.count; - loader_destroy_layer_list(NULL, NULL, &instance_layer_list); - return VK_SUCCESS; + goto out; } copy_size = (*pPropertyCount < instance_layer_list.count) ? *pPropertyCount : instance_layer_list.count; @@ -224,13 +224,14 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties( *pPropertyCount = copy_size; if (copy_size < instance_layer_list.count) { - loader_destroy_layer_list(NULL, NULL, &instance_layer_list); - return VK_INCOMPLETE; + result = VK_INCOMPLETE; + goto out; } - loader_destroy_layer_list(NULL, NULL, &instance_layer_list); +out: - return VK_SUCCESS; + loader_delete_layer_properties(NULL, &instance_layer_list); + return result; } LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(const VkInstanceCreateInfo *pCreateInfo, @@ -718,6 +719,7 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionPropertie loader_add_to_dev_ext_list(NULL, &local_ext_list, &ext_list->list[j].props, 0, NULL); } } + loader_destroy_layer_list(NULL, NULL, &local_list); dev_ext_list = &local_ext_list; } else { |
