From ce7a7aeeccf44fa00fd8157b5e592c4980852f3b Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 10 Jul 2020 17:14:30 +0200 Subject: [PATCH] radv: destroy the base object if VkCreateEvent() failed Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/amd/vulkan/radv_device.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index f449199d994..6594b2a00d9 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -5800,7 +5800,9 @@ static void radv_destroy_event(struct radv_device *device, const VkAllocationCallbacks* pAllocator, struct radv_event *event) { - device->ws->buffer_destroy(event->bo); + if (event->bo) + device->ws->buffer_destroy(event->bo); + vk_object_base_finish(&event->base); vk_free2(&device->vk.alloc, pAllocator, event); } @@ -5826,7 +5828,7 @@ VkResult radv_CreateEvent( RADEON_FLAG_VA_UNCACHED | RADEON_FLAG_CPU_ACCESS | RADEON_FLAG_NO_INTERPROCESS_SHARING, RADV_BO_PRIORITY_FENCE); if (!event->bo) { - vk_free2(&device->vk.alloc, pAllocator, event); + radv_destroy_event(device, pAllocator, event); return vk_error(device->instance, VK_ERROR_OUT_OF_DEVICE_MEMORY); } -- 2.30.2