blob: 3b95f5f734adaca5cebb65d92bad2d0825ceb034 [file] [log] [blame]
From b816167312315f5840fbff38207a97aee75e3ec1 Mon Sep 17 00:00:00 2001
From: Yiwei Zhang <zzyiwei@chromium.org>
Date: Sat, 21 Aug 2021 22:21:17 +0000
Subject: [PATCH] venus: fix all missing vn_object_base_fini
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12498>
---
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);
}
--
2.33.0.259.gc128427fd7-goog