From 2b19b7a165f7158eba4ba61aad3b2ced26b0b06a Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Thu, 8 Apr 2021 16:40:45 -0500 Subject: [PATCH] anv: Clean up anv_semaphore::base on the error path Fixes: 682c81bdfb7 "vulkan,anv: Add a base object struct type" Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/vulkan/anv_queue.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/intel/vulkan/anv_queue.c b/src/intel/vulkan/anv_queue.c index 7491a717e5d..884bd3defdb 100644 --- a/src/intel/vulkan/anv_queue.c +++ b/src/intel/vulkan/anv_queue.c @@ -2249,6 +2249,7 @@ VkResult anv_CreateSemaphore( else result = timeline_semaphore_create(device, &semaphore->permanent, timeline_value); if (result != VK_SUCCESS) { + vk_object_base_finish(&semaphore->base); vk_free2(&device->vk.alloc, pAllocator, semaphore); return result; } @@ -2259,6 +2260,7 @@ VkResult anv_CreateSemaphore( else result = timeline_semaphore_create(device, &semaphore->permanent, timeline_value); if (result != VK_SUCCESS) { + vk_object_base_finish(&semaphore->base); vk_free2(&device->vk.alloc, pAllocator, semaphore); return result; } @@ -2269,6 +2271,7 @@ VkResult anv_CreateSemaphore( semaphore->permanent.type = ANV_SEMAPHORE_TYPE_DRM_SYNCOBJ; semaphore->permanent.syncobj = anv_gem_syncobj_create(device, 0); if (!semaphore->permanent.syncobj) { + vk_object_base_finish(&semaphore->base); vk_free2(&device->vk.alloc, pAllocator, semaphore); return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); } @@ -2278,6 +2281,7 @@ VkResult anv_CreateSemaphore( } } else { assert(!"Unknown handle type"); + vk_object_base_finish(&semaphore->base); vk_free2(&device->vk.alloc, pAllocator, semaphore); return vk_error(VK_ERROR_INVALID_EXTERNAL_HANDLE); }