aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
authorMark Young <marky@lunarg.com>2017-03-03 15:28:57 -0700
committerMark Young <marky@lunarg.com>2017-03-03 15:30:14 -0700
commit127342275cb9ab2ab74ced48a0de4846a0b40792 (patch)
treeccde8e3133fd344a1a52108a9e3d52d25f71c3f3 /loader
parent529c1bff11c0cb083b94a630473cad0963139da5 (diff)
downloadusermoji-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.c14
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 {