A successful AHardwareBuffer_allocate itself will increase a refcount on
the newly allocated AHB. For the import case, the implementation must
acquire a reference on the AHB. So if we layer the exportable allocation
on top of AHB allocation and AHB import, we must release an AHB
reference to avoid leak.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10940>
};
VkResult result = radv_import_ahb_memory(device, mem, priority, &import_info);
- if (result != VK_SUCCESS)
- AHardwareBuffer_release(mem->android_hardware_buffer);
+
+ /* Release a reference to avoid leak for AHB allocation. */
+ AHardwareBuffer_release(mem->android_hardware_buffer);
+
return result;
#else /* RADV_SUPPORT_ANDROID_HARDWARE_BUFFER */
return VK_ERROR_EXTENSION_NOT_PRESENT;