[Mesa-dev] [PATCH 2/2] radv/winsys: use alloca() when creating the buffer object list
Samuel Pitoiset
samuel.pitoiset at gmail.com
Thu Jul 12 14:26:35 UTC 2018
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index c94c0f339f..e7ad9d7f6b 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -605,11 +605,7 @@ static int radv_amdgpu_create_bo_list(struct radv_amdgpu_winsys *ws,
pthread_mutex_lock(&ws->global_bo_list_lock);
- handles = malloc(sizeof(handles[0]) * ws->num_buffers);
- if (!handles) {
- pthread_mutex_unlock(&ws->global_bo_list_lock);
- return -ENOMEM;
- }
+ handles = alloca(sizeof(handles[0]) * ws->num_buffers);
LIST_FOR_EACH_ENTRY(bo, &ws->global_bo_list, global_list_item) {
assert(num < ws->num_buffers);
@@ -619,7 +615,7 @@ static int radv_amdgpu_create_bo_list(struct radv_amdgpu_winsys *ws,
r = amdgpu_bo_list_create(ws->dev, ws->num_buffers,
handles, NULL,
bo_list);
- free(handles);
+
pthread_mutex_unlock(&ws->global_bo_list_lock);
} else if (count == 1 && !num_extra_bo && !extra_cs && !radv_bo_list &&
!radv_amdgpu_cs(cs_array[0])->num_virtual_buffers) {
@@ -652,11 +648,7 @@ static int radv_amdgpu_create_bo_list(struct radv_amdgpu_winsys *ws,
*bo_list = 0;
return 0;
}
- amdgpu_bo_handle *handles = malloc(sizeof(amdgpu_bo_handle) * total_buffer_count);
- if (!handles) {
- free(handles);
- return -ENOMEM;
- }
+ amdgpu_bo_handle *handles = alloca(sizeof(amdgpu_bo_handle) * total_buffer_count);
for (unsigned i = 0; i < num_extra_bo; i++) {
handles[i] = extra_bo_array[i]->bo;
@@ -735,8 +727,6 @@ static int radv_amdgpu_create_bo_list(struct radv_amdgpu_winsys *ws,
} else {
*bo_list = 0;
}
-
- free(handles);
}
return r;
--
2.18.0
More information about the mesa-dev
mailing list