From b816167312315f5840fbff38207a97aee75e3ec1 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Sat, 21 Aug 2021 22:21:17 +0000 Subject: [PATCH] venus: fix all missing vn_object_base_fini Signed-off-by: Yiwei Zhang Reviewed-by: Chia-I Wu Reviewed-by: Ryan Neph Part-of: --- src/virtio/vulkan/vn_buffer.c | 1 + src/virtio/vulkan/vn_command_buffer.c | 1 + src/virtio/vulkan/vn_descriptor_set.c | 2 ++ src/virtio/vulkan/vn_device_memory.c | 3 +++ src/virtio/vulkan/vn_image.c | 2 ++ src/virtio/vulkan/vn_queue.c | 2 ++ 6 files changed, 11 insertions(+) diff --git a/src/virtio/vulkan/vn_buffer.c b/src/virtio/vulkan/vn_buffer.c index cb65c2d29f1..766fb3ad05a 100644 --- a/src/virtio/vulkan/vn_buffer.c +++ b/src/virtio/vulkan/vn_buffer.c @@ -42,6 +42,7 @@ vn_buffer_create(struct vn_device *dev, result = vn_call_vkCreateBuffer(dev->instance, device, create_info, NULL, &buffer); if (result != VK_SUCCESS) { + vn_object_base_fini(&buf->base); vk_free(alloc, buf); return result; } diff --git a/src/virtio/vulkan/vn_command_buffer.c b/src/virtio/vulkan/vn_command_buffer.c index de6bd7cac05..6ee5237b32a 100644 --- a/src/virtio/vulkan/vn_command_buffer.c +++ b/src/virtio/vulkan/vn_command_buffer.c @@ -542,6 +542,7 @@ vn_AllocateCommandBuffers(VkDevice device, cmd = vn_command_buffer_from_handle(pCommandBuffers[j]); vn_cs_encoder_fini(&cmd->cs); list_del(&cmd->head); + vn_object_base_fini(&cmd->base); vk_free(alloc, cmd); } memset(pCommandBuffers, 0, diff --git a/src/virtio/vulkan/vn_descriptor_set.c b/src/virtio/vulkan/vn_descriptor_set.c index d50c07056f9..d5d0f484c4d 100644 --- a/src/virtio/vulkan/vn_descriptor_set.c +++ b/src/virtio/vulkan/vn_descriptor_set.c @@ -252,6 +252,7 @@ vn_AllocateDescriptorSets(VkDevice device, for (uint32_t j = 0; j < i; j++) { set = vn_descriptor_set_from_handle(pDescriptorSets[j]); list_del(&set->head); + vn_object_base_fini(&set->base); vk_free(alloc, set); } memset(pDescriptorSets, 0, @@ -276,6 +277,7 @@ vn_AllocateDescriptorSets(VkDevice device, struct vn_descriptor_set *set = vn_descriptor_set_from_handle(pDescriptorSets[i]); list_del(&set->head); + vn_object_base_fini(&set->base); vk_free(alloc, set); } memset(pDescriptorSets, 0, diff --git a/src/virtio/vulkan/vn_device_memory.c b/src/virtio/vulkan/vn_device_memory.c index d244f109e39..89226dde332 100644 --- a/src/virtio/vulkan/vn_device_memory.c +++ b/src/virtio/vulkan/vn_device_memory.c @@ -48,6 +48,7 @@ vn_device_memory_simple_alloc(struct vn_device *dev, }, NULL, &mem_handle); if (result != VK_SUCCESS) { + vn_object_base_fini(&mem->base); vk_free(alloc, mem); return result; } @@ -61,6 +62,7 @@ vn_device_memory_simple_alloc(struct vn_device *dev, if (result != VK_SUCCESS) { vn_async_vkFreeMemory(dev->instance, vn_device_to_handle(dev), mem_handle, NULL); + vn_object_base_fini(&mem->base); vk_free(alloc, mem); return result; } @@ -370,6 +372,7 @@ vn_AllocateMemory(VkDevice device, mem_type->propertyFlags, 0); } if (result != VK_SUCCESS) { + vn_object_base_fini(&mem->base); vk_free(alloc, mem); return vn_error(dev->instance, result); } diff --git a/src/virtio/vulkan/vn_image.c b/src/virtio/vulkan/vn_image.c index 76fbd3fb05b..88a3c7bce77 100644 --- a/src/virtio/vulkan/vn_image.c +++ b/src/virtio/vulkan/vn_image.c @@ -191,6 +191,7 @@ vn_image_create(struct vn_device *dev, result = vn_image_init(dev, create_info, img); if (result != VK_SUCCESS) { + vn_object_base_fini(&img->base); vk_free(alloc, img); return result; } @@ -227,6 +228,7 @@ vn_image_create_deferred(struct vn_device *dev, result = vn_image_store_deferred_create_info(create_info, alloc, &img->deferred_info); if (result != VK_SUCCESS) { + vn_object_base_fini(&img->base); vk_free(alloc, img); return result; } diff --git a/src/virtio/vulkan/vn_queue.c b/src/virtio/vulkan/vn_queue.c index 2f067f1f581..062aa43d5e8 100644 --- a/src/virtio/vulkan/vn_queue.c +++ b/src/virtio/vulkan/vn_queue.c @@ -493,6 +493,7 @@ vn_CreateFence(VkDevice device, VkResult result = vn_fence_init_payloads( dev, fence, pCreateInfo->flags & VK_FENCE_CREATE_SIGNALED_BIT, alloc); if (result != VK_SUCCESS) { + vn_object_base_fini(&fence->base); vk_free(alloc, fence); return vn_error(dev->instance, result); } @@ -816,6 +817,7 @@ vn_CreateSemaphore(VkDevice device, VkResult result = vn_semaphore_init_payloads(dev, sem, initial_val, alloc); if (result != VK_SUCCESS) { + vn_object_base_fini(&sem->base); vk_free(alloc, sem); return vn_error(dev->instance, result); }